我想转换一些视频以便可以在佳能数码相机上播放。
佳能 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,而佳能视频为 21588 kb/s。
但尽管如此,佳能相机仍然无法播放视频。:-(