web-dev-qa-db-ja.com

FFmpegで複数のPGS字幕トラックをコピーする

Debian9を使用しています。PGSにいくつかのオーディオトラックと字幕を含むファイルがあります。ビデオをh265に渡し、すべてのオーディオトラックと字幕をそのまま.mkvコンテナに保存したいと思います。これは、mp4が画像ベースの字幕をサポートしていないことを理解しているためです。

私が使用するコマンドは次のとおりです。

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

しかし、ffmpegでこのエラーが発生します:

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

そして、一度に1つずつコピーしたい場合は、最初の1つを書き込むだけです。

ここ は問題のファイルのデータです:

要約すれば:

期待される結果:ビデオファイルをh265に再コード化し、すべてのオーディオと字幕を変更せずにコピーするか、ビデオに書き込んで、使用するものを選択できるようにします。

得られた結果:字幕のパラメータが不足しているためにエラーが発生しました。

字幕を1つずつ抽出せずにffmpegから直接実行し、mkvmergeなどのプログラムを介してビデオに追加する方法はありますか?

1
jota jota Lopez

ストリームコピー (再マルチプレクサ)ビデオ以外のすべて:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0は、ストリームタイプごとに1つのストリームのみを含む デフォルトのストリーム選択動作 に依存する代わりに、入力から出力までのすべてのストリームを含みます。

1
llogan

これはエラーではありません。警告メッセージです。 -loglevel warningはメッセージを返します:

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

そしてその -loglevel errorそれを抑制します:

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

Subtitle Edit を使用して、自分の出力mkvファイルのすべての字幕をテストしましたが、すべて無傷です。この警告は、後でこれらの字幕を再エンコードすることにした場合にのみ警告するために表示されると思います。

0
mgutt