EPGStationのトランスコードを最適化する(Ubuntu 22.04)
目次
EPGStationで録画したMPEG-2 TSファイルを、mp4にトランスコードして使うのが一般的です。
理由は、主に2つあります。
- TSファイルは、地上波(1440×1080)で1時間約6.9GBと大きく、冗長でストレージを効率良く使用できません。
- TSファイルは、ビットレートが12~13.5Mbpsと高レートで、再生時の負荷が高い。
(EPGStationでは、再生時リアルタイムトランスコードを行っているので、ビットレートは低めになります。)
mp4にトランスコードすれば、以下のメリットがあります。
- ファイルサイズ 画質を落とさずに平均1/4に圧縮できます。1時間の映像であれば、平均1.6GBになります。
- ビットレート ファイルサイズと同じく平均1/4に圧縮できます。平均3Mbpsになります。
EPGStationを安定して使うために、トランスコードは重要な機能となっています。
今回は、以下の記事に基づいてインストールされたEPGStationを前提として、
トランスコードの最適化について解説します。
EPGStationのトランスコードの課題
EPGStationでは、2つの方法でトランスコードを実施できます。
- 手動 録画されたファイルの画面から、ボタンをクリックして行う。
- 自動 ルールによって録画した際に、自動的にトランスコードを行う設定が使える。
デフォールトの設定では、トランスコードを行う時、enc.jsというJavaScriptが実行されます。
非常に安定して動作し、進捗度表示も便利なenc.jsですが、いくつか気になる点があります。
- NHK、NHK BS1のニュースで二か国語放送の時、mp4が作成できない。(デュアルモノ放送)
- NHK BS1の二か国語放送(例えば、「世界のドキュメンタリー」など)で、英語になるときがある。
- 前番組の映像ゴミが5秒程度入る。
- crf値が26で、画質が大画面ではやや劣化。(スマホユーザーは問題ないレベル。)
- インターレース解除を行う必要性はあるか?
(インターレース解除のアルゴリズムは様々あるらしい。
ffmpegのインターレース解除アルゴリズムが良いのか、
VLCなどのビデオプレイヤーの再生時インターレース解除処理
と比較してどちらが優れているのか。
後者を選択する方法もある。
トランスコード時に余計な処理時間がかかるより、
VLCなどのビデオプレイヤーで再生時インターレース解除処理をしてもいい。
実際、VLCやPLEX Media Playerで観ているが、気になったことはない。)
EPGStationのトランスコードの暫定的解決策
すべてをenc.jsの修正で行うとしましたが、完成できませんでした。
暫定的に、
課題3,4,5は、enc.jsを修正したsl-enc.jsで、
課題1,2は、sl-enc-ml.shというシェルスクリプトで提供します。
暫定的解決策の内容
課題3 const args = [‘-ss’,’4′,’-y’]; <これで最初の4秒を切って、トランスコードします。>
課題4 Array.prototype.push.apply(args, [‘-preset’, ‘veryfast’, ‘-crf’, ’22’]); <crf値を22にしました。>
課題5 // Array.prototype.push.apply(args, [‘-vf’, ‘yadif’]); <コメントアウトしました。>
課題1,2は、以下のトランスコードオプションを提供。
M2 「デュアルモノ」を日本語と英語で切替できるようにする。
L2 「二か国語」を日本語と英語で切替できるようにする。
L1-24 1920x1080の放送でファイルサイズが大きくならないようにする。crf=24
暫定的解決策のインストール
インストールスクリプトは、EPGStationをインストールした中に含まれています。
~/temp/toolに移動します。
euser@pc:~$ cd ~/temp/tool euser@pc:~/temp/tool$ ls -la 合計 28 drwxrwxr-x 3 euser euser 4096 5月 23 09:37 . drwxrwxr-x 4 euser euser 4096 5月 23 09:32 .. drwxrwxr-x 2 euser euser 4096 5月 22 08:42 data -rw-rw-r-- 1 euser euser 348 5月 23 09:37 p1-changeconfig.sh -rw-rw-r-- 1 euser euser 57 5月 22 09:04 p2a-editsamba.sh -rw-rw-r-- 1 euser euser 198 5月 22 09:02 p2b-installsamba.sh -rw-rw-r-- 1 euser euser 556 5月 16 10:44 p3-installmunin.sh
bash p1-changeconfig.shを実行します。
euser@pc:~/temp/tool$ bash p1-changeconfig.sh Stopping epgstation-v2 ... done Stopping mirakurun ... done Stopping mysql-epgstation-v2 ... done Removing epgstation-v2 ... done Removing mirakurun ... done Removing mysql-epgstation-v2 ... done Removing network docker-mirakurun-epgstation_default Creating network "docker-mirakurun-epgstation_default" with the default driver Creating mysql-epgstation-v2 ... done Creating mirakurun ... done Creating epgstation-v2 ... done euser@pc:~/temp/tool$
インストールが完了したか、確認します。
ブラウザでEPGStationを開きます。
左側メニューから「録画済み」をクリックし、中のファイルを一つ選んで開けて下さい。
中央左側に「ENCODE」ボタンがあるので、クリックして下さい。
表示されたポップアップ画面の中で「preset」をクリックして、
「H.264-SL」「M2」「L1-24」「L2」のオプションを確認して下さい。
NHKニュース(デュアルモノ)を録画する
ルールの設定画面を以下のように設定します。
検索された番組の中で、デュアルモノを確認します。
以下は、「ニュースウォッチ9」の例です。
デュアルモノが確認できたので、トランスコードの設定をします。
modeを「M2」に設定してください。
トランスコードしたmp4ファイルをVLCプレイヤーで表示すると、
以下のように、日本語、英語が切り替えられることがわかります。
また、ニュース以外にも、「デュアルモノ」があるので、
トランスコードできなかったら、確認して下さい。
以下は、「シャーロック・ホームズの冒険」です。
以下は、「ひまわり」の例です。
二か国語放送を録画する
NHK BS1で「二か国語放送」があります。
「世界のドキュメンタリー[二]」の例です。
この場合は、modeで「L2」を選びます。
トランスコードしたmp4ファイルをVLCプレイヤーで表示すると、
以下のように、日本語、英語が切り替えられることがわかります。
コメントを残す