生の NV12 YUV プログレッシブ データがあり、各フレームを偶数フィールドと奇数フィールド (インターレース データ) の画像に分割する必要があります。
1 に答える
すべてのジョブを手動で実行する場合:
.yuv ファイルから各フレームを抽出する
ストリームの形式と解像度に応じて、1 フレームのサイズを計算します。その後、抽出を行うことができます。
.yuv フレームを .yuv フィールドに分割
各ラインのサイズを計算し、フレームを奇数/偶数ラインで分割します。形式が yuv420 の場合は、uv 行に注意してください。
.yuv フィールドを .bmp 画像に変換
フォーマットが yuv444 でない場合は、最初に yuv444 に変換します。次に、yuv から rgb への変換を行い、画像を .bmp 形式に保存します。
ffmpeg と ImageMagick の助けを借りて、2 つの手順で (より簡単に) 実行することもできます (フレームの解像度が 1920x1080 で、フィールドが 1920x540 であると仮定します)。
YUV を画像に変換
ffmpeg -s 1920x1080 -i input.yuv frame_%3d.bmp
-pix_fmt
.yuv ファイルのフォーマット (ピクセル レイアウト) を指定するために使用できます。画像を奇数/偶数に分割
convert frame_000.bmp -define sample:offset=25 -sample 100%x50% frame_000_top.bmp
convert frame_000.bmp -define sample:offset=75 -sample 100%x50% frame_000_bot.bmp
これら 2 つのコマンドは、 de-interlace a video frameの最後の部分にあります。