如何使用 h264 yuvj420p 和 pcm u8 將影片轉換為 MOV 文件

如何使用 h264 yuvj420p 和 pcm u8 將影片轉換為 MOV 文件

我想將一些影片轉換為可在佳能數位相機上播放。

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

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

我認為解決問題不是問題,而是高的相對約束基線。還有yuv420pyuvj420p。我如何實現這些規格?

答案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 bt709在 yuvj420p(pc,…) 之後設定三個像素格式子規範,這是我發現的這裡
  • -r ntsc將幀速率設定為 29.97(其中 ntsc 是幀速率的別名)
  • -s 1280x720將影片縮放到與原始佳能影片相同的寬度和高度

現在唯一的區別是比特率,我的 ffmpeg 創建的影片為 4065 kb/s,canon 影片為 21588 kb/s。

但儘管如此,該影片仍然無法在佳能相機上播放。 :-(

相關內容