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

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

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

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

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

ストリームコピー(再多重化) ビデオ以外のすべて:

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

-map 0入力から出力までのすべてのストリームを包含し、デフォルトのストリーム選択動作ストリーム タイプごとに 1 つのストリームのみが含まれます。

答え2

これはエラーではありません。警告メッセージです。次の-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

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

関連情報