我想將一些影片轉換為可在佳能數位相機上播放。
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
我認為解決問題不是問題,而是高的相對約束基線。還有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 bt709
在 yuvj420p(pc,…) 之後設定三個像素格式子規範,這是我發現的這裡-r ntsc
將幀速率設定為 29.97(其中 ntsc 是幀速率的別名)-s 1280x720
將影片縮放到與原始佳能影片相同的寬度和高度
現在唯一的區別是比特率,我的 ffmpeg 創建的影片為 4065 kb/s,canon 影片為 21588 kb/s。
但儘管如此,該影片仍然無法在佳能相機上播放。 :-(