テレビのチューナーをPCから使えるようにして、録画もできるようになった。
そこで気になり始めたのが、録画した後のTSファイルだった。
とりあえず残しておくと、少しずつ増えていく。MP4へ変換しようと思っても、エンコーダーを選び、画質を決め、番組名を付け直す。
録画そのものが自動になったのに、その後の作業は意外と手動のままだ。
それなら、録画が終わったところから、見やすい動画として保存するところまでつなげたい。そんな用途で、Windows向けの変換アプリ「TS Encode Flow」を作った。
この記事は2026年11月1日時点のv0.5.0を対象にしている。
v0.4.0でツールの自動準備とCM解析、v0.4.1でカスタムプリセットの削除に対応した。
v0.5.0では、元TSの直接CM解析、同名カスタムの上書き、中止したジョブごとのプリセット変更を加えた。
掲載した5枚のスクリーンショットは、v0.2.5の実際のアプリ画面を撮影したもの。
基本的な使い方の画面例として残しており、v0.5.0までに追加したボタンやCM解析の項目などは写っていない。
画面例には撮影用の設定を使っている。

TSを追加し、プリセットと変換状況を確認するダッシュボード。
録画したTSを、普段見るための動画へ
TS Encode Flowは、録画済みのTSをMP4・MKVへ変換するアプリだ。
TSを選んで手動で変換することも、EPGTimerの録画終了後にBATから自動登録することもできる。
前に紹介したTCL 32S5400でMirakurunを動かす構成から続く、録画後の作業を扱うものになる。ただし、このアプリ自体はTCLのテレビやMirakurun専用ではない。
既に録画してあるTSから利用できる。録画予約やチューナー制御はEDCBなどが担当する。
変換後も元のTSは削除しない。
字幕や画質を後から見直したくなったとき、元に戻ってやり直せるようにした。
既に同じ出力名の動画がある場合も、連番を付けて保持する。
CPUでもGPUでも、用途から選べるようにした
変換にはFFmpegのほか、NVIDIAならNVEncC、AMDならVCEEncC、IntelならQSVEncCを利用できる。
最初から数値だけを並べても、どこから触ればよいか分かりにくい。
そこで、通常番組・アニメ・映画・スポーツなど、12の用途と4つの変換方式を組み合わせた48種類のプリセットを用意した。

用途と変換方式から選べる。
上部には「+ 自作プリセットを追加」も用意した。
例えば、いつもの番組を扱いやすいサイズで残すなら「毎日の番組・バランス」。
アニメの線や色を残したいときはアニメ向け、動きを重視したいときはスポーツ向け、といった入り方ができる。
もちろん、プリセットだけであらゆる映像に最適な設定になるわけではない。まず短い録画で、画質・動き・容量を確認してほしい。
確認環境のAMD Radeon RX 570/VCEEncC 9.22では、約30分の実録画TSをH.264のMP4とHEVCのMKVへ全編変換できた。
変換後の映像・音声も全編をデコードして確認している。
一方、NVIDIA・Intelの実機変換は未検証だ。
利用できるコーデックやフィルタは、GPUとドライバーにも左右される。
導入は、ZIPを展開して「すべてダウンロードして適用」から
配布先はGitHubのTS-Encode-Flowリポジトリ。
使う場合は、ReleasesからWindows x64用のZIPをダウンロードする。
この記事の対象はTS-Encode-Flow-v0.5.0-windows-x64.zipだ。「Source code」はソースなので、実行用ZIPとは区別してほしい。
- ZIPをすべて展開し、
TS-Encode-Flow.exeを起動する。 - 「設定」で「すべてダウンロードして適用」を押す。必要なツールを取得・展開し、アプリへパスを設定する。
- 動画の保存先とファイル名マクロを設定し、「設定を保存」を押す。
- 「プリセット」で変換方式と用途を選び、「+ TSを追加」から録画済みTSを選ぶ。
- 「変換キュー」で進捗を確認し、完了したら出力先の動画を再生する。
対応OSはWindows 10 バージョン2004以降/Windows 11のx64。
配布ZIPにはアプリの実行に必要な.NET・MAUI関連ファイルや字幕解析ツールを含む。
FFmpeg・GPUエンコーダー・EDCBの番組情報DLL・CM解析ツールは、設定画面から自動取得できる。
一括準備ではFFmpeg/ffprobe、NVEncC、VCEEncC、QSVEncC、CM解析用の構成ツール、logoframe、EDCBの番組情報DLLを用意する。
必要なものだけ個別に取得することも、既に持っているツールのパスを手動指定することもできる。
配布元を直接確認したい場合は、設定画面のリンク、またはFFmpeg公式、NVEncC、VCEEncC、QSVEncCから確認できる。
GPU方式でも、FFmpegとffprobeの両方が必要だ。
一括取得は配布版によって前後するが、約800MBのダウンロードになる。展開用の空き容量と通信時間も見込んでおきたい。
GPUドライバーは別途必要だ。
※セキュリティソフトで検出された場合は、配布元・対象ファイル・検出内容を確認して判断してほしい。
各ツールの「ライセンス・配布元を確認」から、配布元、導入した版、取得ファイルのSHA-256、ライセンス文書を確認できる。
先行ソフトはそれぞれの利用条件に従って使う。
EXEだけを抜き出さず、配布ZIPのWorker・Tools・DLLも一緒に残しておく。
解像度やYadifも、自分のプリセットにする
既存のプリセットを少し変えたい場合は「詳細・カスタマイズ」。
新しく作る場合は「+ 自作プリセットを追加」を使う。
名前、変換方式、コーデック、保存形式に加え、解像度・画質・フレームレート・Yadif/Bwdif・ノイズ除去などを調整できる。

自作プリセットの作成画面。幅と高さが両方0なら元の解像度を維持する。
見る端末に合わせて720pへ落としたり、元の解像度を維持したりできる。
インターレース解除も、通常の出力と倍フレームの出力から選べる。
動きのある番組でなめらかさを重視するときは、倍フレームの設定も試せる。
ただし、フレーム数や画質を上げるほど処理時間や容量が増える場合がある。
GPUでフレームレートを明示する設定では、FFmpegの可逆中間ファイルを作るため空き容量も必要だ。
「アニメだから必ず24p」のように決めつけず、素材を見て選びたい。
保存した自作プリセットは「カスタム」に表示される。
同じ名前で保存すると、既存のカスタムプリセットを上書きする。
名前の前後の空白と英字の大小は区別せず、変換方式を変えても同名なら同じ1件を更新する。
別の設定として残したい場合は名前を変える。
カスタムの編集では名前を維持するので、そのまま保存して更新できる。標準プリセットは上書きしない。
使わなくなった設定は、カードの「このカスタムプリセットを削除」から、名前を確認して削除できる。
標準プリセットは削除できず、選択中のカスタムを消した場合は同じ変換方式の標準へ戻る。
カスタムを上書き・削除しても、既に登録したジョブや作成済みの録画後BATには、その時点の設定が残る。
今後の録画後処理も変えたい場合は、BATとEPGTimer側の指定を見直す。
登録済みジョブだけ設定を変えたい場合は、対象を中止し、中止が完了してから「プリセットを変更」を開く。
新しいプリセットを選んで「このジョブに適用」を押し、「再試行」で再開する。TSを追加し直す必要はない。キューにはプリセット名も表示する。
変更はそのジョブだけに適用する。保存先とファイル名マクロは維持し、CM解析と字幕の確認状態はリセットするため、新しい設定でやり直す。実行中のまま変更することはできない。
CMは、消す前に「どこを切るか」を確認したい
録画した番組を見返すとき、CMを飛ばしたい場面もある。
ただ、自動判定だけに任せて本編まで切れてしまうのは困る。
そこで、CM候補をタイムリストで確認してから処理する流れを加えた。
CMをカットして本編をつなぐ方法と、CMを残したまま本編・CM候補のチャプターを付ける方法を選べる。
解析は、ロゴ表示区間を調べるlogoframe、無音・シーンチェンジを検出するchapter_exe、それらを基に区間を判定するjoin_logo_scpを組み合わせる。
Amatsukazeと共通するCM解析用のツール構成を利用している。
Amatsukaze本体を丸ごと移植したものではない。
GUIやサーバー、変換機能は取り込まず、CM解析の結果をTS Encode Flowの確認画面・出力処理につないでいる。Comskip方式は使わない。
ツールの自動準備を済ませたら、プリセットの「CM・タイムリスト」で出力方法を選び、区間の取得方法を「Amatsukaze方式でCM候補を自動解析」にする。
放送局のロゴは自動生成でき、対象局のLGDファイルを指定することもできる。
ロゴを使わず無音・シーンチェンジ中心で解析する場合は、プリセットで「ロゴを使わない」を明示的にONにする。
「変換前にCM候補を確認する」は既定でON。
解析が終わって「CM確認待ち」になったら、「CM・タイムリスト」で区間を確認・修正し、カットするかCMを残すかを選んで確定する。
確認を優先するなら、まずはCMを残すチャプター方式から試すとよい。
判定が外れていても、元の映像を見ながら区間を確かめられる。
CMカットでは、残す区間に合わせて音声と字幕の時刻も組み直す。
動画の隣には入力・出力の対応を記録した.cm.csvと.cm.jsonを保存する。
実録画TSでは、ロゴ生成から区間判定、AMDによる720p・H.264のCMカットまで確認した。
出力は約19分31秒で、映像と音声を全編デコードして確認している。
ただし、これはすべてのCM境界を正しく判定できる保証ではない。
v0.5.0からは、元TSを直接読み取ってCM解析する。以前のように全編のH.264解析用動画やPCM音声を一時生成する方式をやめた。
先頭が不完全な録画では、読み取りツールによってフレーム番号がずれる場合がある。解析側のインデックスとFFmpegが読み取った全フレームの時刻を照合し、先頭のずれを補正する。途中の対応が崩れる場合や解像度が変わる場合は、自動適用を停止する。
検証した約30分・2.3GBの録画では、インデックスは約58MiBだった。設定フォルダー内のCommercials/IndexCacheへ保存して再利用し、解析中は作業用コピーも使う。全編の解析用動画を作らないため、その再エンコード時間と保存容量を省ける。
初回のインデックス生成では、録画フォルダーに.lwiを一時的に書き込む権限が必要になる。既に同名インデックスがある場合は退避・復元する。映像・音声を読み取って解析する時間と、インデックス用の空き容量は必要だ。
同じ実録画で従来方式と比較したところ、CMの8区間が一致した。新しい解析結果からAMDで変換し直し、約19分31秒の映像・音声と4つの本編チャプター、出力全編のデコードも確認できた。
判定は番組やロゴの条件で変わるので、最初は確認ONで使ってほしい。
元TSは引き続き保持する。
ファイル名だけでなく、番組情報も残したい
録画ファイルを動画にするとき、毎回タイトルを手入力するのも面倒だ。
そこで、番組名・局名・日時などを使えるファイル名マクロを用意した。例えば{Start:yyyyMMdd_HHmm}_{Channel}_{Title}と指定すれば、取得した情報からファイル名を組み立てる。
EDCBが出力した.ts.program.txtや.program.txtがある場合は、TSの隣に残しておく。
録画日時・局名・番組名の取得に利用する。
TS内の日本語番組情報を解析する場合には、設定画面から自動取得・適用できるEDCB x64のEpgDataCap3.dllも利用できる。
「番組情報をメタデータに保存」を有効にすれば、番組名や説明なども動画へ格納する。
情報の取得元に記録がなければ復元できず、保存したタグの見え方も再生ソフトによって異なる。
この点は、ファイル名と動画内の情報を分けて考える必要がある。
字幕を残す。そのために、止まる理由も見えるようにする
字幕保存を有効にすると、MP4にはmov_text、MKVにはASSのテキスト字幕を格納する。
対応するプレーヤーでは表示・非表示を切り替えられる。
放送時の色・配置・ルビなどを完全再現する方式ではないが、字幕文を動画と一緒に残せる。
少し厄介だったのが、DRCSという字幕の字形データだ。
対応する文字が分からない場合に、勝手な文字へ置き換えて保存するのは避けたい。既定では「DRCS入力待ち」にし、字形画像と参考の写真・スクリーンショットを見比べ、代替文字を入力して保存するようにした。
同じ字形には、保存済みの対応表を次回から利用する。自動OCRではなく、人が確認する機能だ。

字幕を残すか、字幕の問題を無視して続行するかを選択できる。
画面例では無視する設定はOFF。
一方で、「文字の確認より、ひとまず動画を作る方を優先したい」という使い方もある。
v0.2.5で追加した「字幕エラーを無視して続行」も利用できる。
ONなら未対応DRCSを�に置換し、字幕の抽出・格納に失敗した場合は字幕なしで変換を続ける。
完了表示とログには警告を残す。
既に止まっているジョブには、キューの「字幕の問題を無視して再試行」も使える。
これはそのジョブだけに適用する操作だ。
字幕が欠ける可能性はあるので、大切な録画には補正入力を使いたい。
映像・音声の変換エラーやキャンセルまで無視する設定ではない。
EPGTimerで録画が終わったら、BATで変換へ渡す
普段の運用で使いたかったのは、ここからだ。
録画のたびにアプリを開いてファイルを選ぶのではなく、録画が終了したタイミングで変換キューへ渡したい。

手動変換とは別に、録画後BATで使う変換方式とプリセットを選べる。
- 「自動化」で、録画後BATに使う変換方式とプリセットを選ぶ。
- 「このプリセットで録画後BATを作成」を押して保存する。
- 生成された
.batと.bat.profile.jsonを同じフォルダーに置く。 - EPGTimerの対象の録画設定で、「録画後実行」に作成したBATを指定する。
- まず1件の録画で、終了後にキューへ追加され、動画が作成されることを確認する。
この連携には、_EDCBX_DIRECT_による直接実行と、録画ファイルのパスをFilePath環境変数で渡す方式に対応したEDCB版が必要になる。
EDCBの版によって設定画面や適用先は異なるため、予約ごとの録画設定にも反映されているか確認してほしい。
BATには作成した時点のプリセット・出力先・ファイル名マクロを固定する。
後からアプリの選択を変えても、作成済みBATの設定は変わらない。設定を変えたときやアプリの配置先を変えたときは、BATを作り直す。
字幕エラー無視の方針を録画後の処理にも使う場合も同様だ。
CM設定もBAT作成時に保存する。「変換前にCM候補を確認する」がONなら、録画後に「CM確認待ち」で止まるのが正常だ。
自動で最後まで進めたい場合は、自分の番組で判定を確認してから確認OFFのBATを作り直す。
生成したBATへ録画終了時と同じ環境変数を渡す検証は行っているが、EDCBの全派生版や、実際の録画終了イベントを含むすべての環境を確認したわけではない。
最初の1件を確認してから、普段の録画へ広げるのがよい。
「始まっていない?」と思ったら、トレイから状態を見る
実際に確認していて、「録画は終わったのにエンコードが始まらない」と見えたことがあった。
ログを追うと、BATからの登録自体は成功していて、字幕のDRCS入力待ちになっていた。
画面が出ないまま動く処理ほど、今どこにいるのかを見えるようにする必要があった。
そこでv0.2.5から、バックグラウンドのワーカーが通知領域にアイコンを出すようにした。
ダブルクリックで変換キューを開き、右クリックからダッシュボード、字幕・DRCS、CM・タイムリストの画面も開ける。
既にGUIが起動していれば、その画面を前面へ戻す。
アイコンから変換中・待機中・一時停止・確認待ちの状態を確認できる。DRCSだけでなく、CM候補の確認待ちにも気付けるようにした。
GUIを閉じてもワーカーは動く。
常駐そのものを終了したい場合は、トレイの「バックグラウンドを終了」を使う。
ただし、PCがスリープ中や電源OFFなら変換は進まない。
また、EDCBをWindowsサービスなどの非対話セッションで動かす場合には、そのセッションのアイコンを通常のデスクトップへ表示できない。
実行ユーザーと設定フォルダーも確認したい。
「開始待ち」と履歴クリアも、意味が分かるように
再試行を押しても、すぐに変換が始まらないことがある。入力TSがまだ書き込まれていないかを確認するためだ。
既定では、ファイルのサイズ・更新時刻が60秒間変わらず、書き込み中でもないことを確かめてから処理する。
再試行もこの確認を行う。並列数の上限や一時停止によって開始を待つ場合もあるので、キューの工程メッセージと上部の操作を見てほしい。
この待機状態を一律に「終了待ち」と表示していたが、何の終了なのか分かりにくかった。
v0.4.1では「開始待ち」に直している。
完了した履歴が増えたら、変換キューの「履歴をクリア」を使える。
完了・失敗・キャンセル・中断の履歴を消し、待機中・処理中・字幕やCMの確認待ちは残す。
消すのはキューの履歴で、元TS・変換した動画・ログを削除する操作ではない。
同じ録画が監視から勝手に再登録されるのも防ぐ。
意図して再変換する場合は、TSを手動で追加できる。
残したい番組に合わせて、録画後の流れを作る
まずは録画済みのTSを1本選び、用途別プリセットで変換してみる。
画質や字幕を確認し、気になるところがあれば自作プリセットへ保存する。
それから録画後BATへつなげれば、設定を確かめながら自動化を進められる。
大量に処理するときは、複数ファイルの追加やフォルダー監視、最大8本の並列処理も使える。
ただ、並列数を増やせば必ず速くなるわけではない。
まずは1本から始め、CPU・GPU・ディスクの余裕を見ながら増やしたい。
アプリはまだ開発中だ。
v0.5.0では基本テスト94項目、CPUとAMDのCMカット・チャプター出力の試験でそれぞれ115項目、字幕・DRCS・録画後BAT・配布ワーカーの回帰試験で122項目が通っている。これらには共通の基本テストも含む。
CM処理もCPU・AMDの試験や実録画で確認しているが、全GPU・全プリセットの組み合わせを保証するものではない。
詳しい範囲は検証記録にまとめている。
起動時と、画面を開いている間の6時間ごとにはGitHubの正式リリースを確認し、新版があれば更新を案内する。
更新は案内先のZIPを取得して行う方式で、自動インストールはしない。
更新時は、進行中の変換が終わってから旧GUIとバックグラウンドワーカーを終了し、新しいZIPを全展開して切り替える。
配置先を変えた場合は、録画後BATも作り直す。
録画できるようにするところも面白いけれど、録ったものを見返しやすい形に整えるところまでつながると、使い方が少し落ち着いてくる。
そんな「録画の後」を、自分の環境に合わせて作っていきたい。
最新版をダウンロードする / 詳しい導入・操作手順 / ソースコード
開発・検証・保守への支援は、Ko-fiから受け付けている。
使ってみた感想や、うまくいかなかったときのログも、改善の手掛かりになる。

コメント