h264 yuvj420p および pcm u8 を使用してビデオを MOV ファイルに変換する方法

h264 yuvj420p および pcm u8 を使用してビデオを MOV ファイルに変換する方法

いくつかのビデオを Canon デジタルカメラで再生できるように変換したいです。

Canon PowerShot カメラのビデオの仕様は次のとおりです。

Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p, 1280x720, 22865 kb/s, 29.97 fps
Audio: pcm_u8 (raw  / 0x20776172), 12000 Hz, mono, u8, 96 kb/s

このようなビデオを作成するための -command ラインはどのffmpegようになるでしょうか? または、どこでそれについて読むことができますか? 大量の形式のリストを提供するものを探さなければなりませんffmpeg -formats。これと、さらにマニュアル ページを読んだ結果、次のコマンドにたどり着きました。

ffmpeg -i oldmovie.mp4 -acodec pcm_u8 -ar 12000 -ac 1 -vcodec copy -pix_fmt yuvj420p MVI_2655.MOV

しかし、まだ動作しません。ビデオ仕様が異なります。

私が受け取ったビデオは次のとおりです:

Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x272 [SAR 153:154 DAR 180:77], 326 kb/s

しかし、正しいビデオには

Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p, 1280x720, 22865 kb/s

解像度が問題なのではなく、高い制約ベースライン。 そしてそのyuv420p対してyuvj420pこれらの仕様を実現するにはどうすればよいでしょうか?

答え1

Ely からのヒントとさらに少しの調査で、まったく同じフォーマット仕様を生成する次のコマンド ラインを見つけました。

ffmpeg -i oldmovie.mp4 -acodec pcm_u8 -ar 12000 -ac 1 -vcodec libx264 -pix_fmt yuvj420p -profile:v baseline -s 1280x720 -r ntsc -colorspace smpte170m -color_primaries bt709 -color_trc bt709 MVI_2655.MOV

どこ

  • -vcodec libx264-profile:v baselineと一緒に-pix_fmt yuvj420pビデオを設定します 制約ベースラインピクセルフォーマットをyuvj420p
  • -colorspace smpte170m-color_primaries bt709そして-color_trc bt709yuvj420p(pc,…)の後に3つのピクセルフォーマットのサブ仕様を設定します。ここ
  • -r ntscフレームレートを 29.97 に設定します (ここで、ntsc はフレームレートの別名です)
  • -s 1280x720ビデオを元のキヤノンビデオと同じ幅と高さに拡大縮小します

唯一の違いはビットレートです。ffmpeg で作成したビデオの場合は 4065 kb/s、Canon のビデオの場合は 21588 kb/s です。

しかし、それでもビデオは Canon カメラで再生できません。:-(

関連情報