EPGStationとラズパイ4でハードウェアエンコード(H264)して、リアルタイム視聴&エンコ時間短縮をしてみた。
参考URL
https://medium.com/chinachu/c98v-raspberry-pi-4-49c9692f5c09
リアルタイム視聴
1, EPGStationのライブを押すと、放送中の番組一覧が出てくる
2, チャンネル名を押すと録画設定が出てくるので、番組名&説明の所を押すと、Codecとオプションのセレクトボタン&視聴ボタンが出てくる。
3, ただし、codec+オプションのエンコード速度が遅いと、リアルタイム視聴が出来ない(しばらく待って、ちょっと再生して、また止まるの繰り返し)
4, ラズパイで1倍速以上のエンコード速度を出すには、ハードウェアエンコードのh264しかない(だいたい1.4倍くらい)
5, EPGStation/config/config.jsonのライブ視聴MP4の設定に、h264を追加する(デフォでは740p/480pしかない)
1 2 3 4 5 |
"liveMP4": [ { "name": "h264_omx", "cmd": "%FFMPEG% -re -i pipe:0 -threads 0 -c:a copy -bsf:a aac_adtstoasc -c:v h264_omx -vb 3000k -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1" }, |
これで、リアルタイム視聴ができるようになる。でも、そんなにリアルタイムでは見ないからな~。
録画のts->h264のエンコ時間短縮
EPGStation/config/enc.jsファイルを修正する。
1 2 3 4 5 |
// 14 行目あたりの codec を h264_omx に変更 // const codec = 'libx264'; const codec = 'h264_omx'; // 40 行目あたり、その他設定の直前にビットレートの指定を追加します。 Array.prototype.push.apply(args, ['-b:v', '3000k']); |
ん~、短縮したはずだけど、ts保存してからh264変換という手順は変わらないから、録画終了→エンコ完了してからじゃないと視聴できない…。
そして、ファイルサイズが結構増えた気がする。
5分番組の場合
TSだと600MB
CPUエンコードだと30MB
HWエンコードだと90MB
となる。ビットレートを下げれば良いけど、画質が下がるしな・・・。
今後やりたい事
1, 最初からh264(mp4)ファイルとして保存出来ないの?
2, nasneみたいに録画しながら、途中でも頭から再生って出来ないのか?