BMS2でQSVトランスコードできなくなったのはFFmpeg 3.0 "Einstein"にしたからでした

Beer Media Server 2で久しぶりにQSVEncCを使ったトランスコードしようとしたら動きませんでした。いろいろなオプション設定を見ても忘れてしまって思い出せません。前回の記事のような横道にそれつつ改めてオプション設定を見直してます。


結局、FFmpeg 3.0 を使ったためエラーが起きたようです。オプションに少し変更が必要だったようです。

https://fossies.org/diffs/ffmpeg/2.8.6_vs_3.0/libavformat/yuv4mpegenc.c-diff.html
 Source code changes of the file "libavformat/yuv4mpegenc.c" between ffmpeg-2.8.6.tar.gz and ffmpeg-3.0.tar.gz

こちらのコード比較を見るとcodec_idの部分が違っています。
AV_CODEC_ID_RAWVIDEO が AV_CODEC_ID_WRAPPED_AVFRAME になっています。このため、"ERROR: Codec not supported."のエラーが発生するのでしょう。

Codec指定を変えてやると動くようになりました。

しかし、レグザ用のLuaスクリプトでは問題なく動くのですが、ビエラ用のLuaスクリプトでは別の問題が生じてしまいました。
ビデオファイルの一覧を表示したときに画面左にプレビュー動画が表示されますが、このプレビュー生成用のFFmpegとQSVEncCのプロセスが生き残ってしまうようです。いくつものFFmpegとQSVEncCが延々とトランスコードを継続しようとしてCPUを使いまくります。そしてBMS2はスレッドをもう作れないとエラーを出しフリーズしてしまいました。

う~ん、何が起きているんだろうか?

コメント

最近のコメント

Threaded Recent Comments will be here.