0

私はビデオエンコーディングの初心者です。次のいずれかの形式で、一連の .dpx ファイルを 1 つのエンコード済みビデオ O/P ファイルにエンコードしようとしています。( .mp4、.avi、.h264、.mkv など)

私は2つの異なるアプローチを試みました。最初のものは機能しますが、2 つ目は機能しません。両者の違いを知りたいです。ヘルプ/入力をいただければ幸いです。

1) x264 ライブラリと一緒に FFMPEG を使用すると、うまく動作します。必要な出力を生成できます

ffmpeg -start_number 0 -i frame%4d.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 
-profile:v baseline fromdpx.h264

2) まず、ffmpeg の連結プロトコルを使用してすべての dpx ファイルを 1 つのファイルに連結し、次に x264 を使用して連結ファイルをエンコードします。ここで、連結されたファイルのサイズは、連結されたすべてのファイルの合計であることがわかります。しかし、x264 コマンドを使用して連結ファイルをエンコードすると、緑色の画面が表示されます (基本的に、目的の出力ではありません)。

ffmpeg -i "concat:frame0.dpx|frame01.dpx|frame2.dpx etc" -c copy output.dpx

それから

x264 --crf 28 --profile baseline -o encoded.mp4 --input-res 1920x1080 --demuxer raw 
output.dpx

また、次のように ffmpeg を使用して連結ファイルをエンコードしようとしました

ffmpeg -i output.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 -profile:v baseline fromdpx.h264

これにより、空のビデオも表示されます。

誰かがここで何が起こっているのか教えてもらえますか? 最初の方法は機能し、2 番目の方法は機能しないのはなぜですか?

ありがとうございました。

4

1 に答える 1

0

2 番目のアプローチでは、DPX ファイルを x264 (--demuxer raw) の未加工の入力として指定しますが、DPX は未加工の形式ではなく (ヘッダー、メタデータ、オプションで RLE 圧縮を含むより多くのコンテナーです)、デコードが必要です。x264 は、i420、yv12、nv12、i422、yv16、nv16、i444、yv24、bgr、bgra、rgb の raw 形式 (--input-csp) のみをサポートします。このすべての形式は、コンポーネントごとに 8..16 ビット (--input-depth) を持つことができます。

また、DPX形式はビデオ形式ではなく画像形式であるため、連結をまったくサポートしているとは思えません。したがって、おそらく concat 後の結果は既に壊れています。

于 2015-06-04T21:45:51.477 に答える