如何使用 h264 yuvj420p 和 pcm u8 将视频转换为 MOV 文件

如何使用 h264 yuvj420p 和 pcm u8 将视频转换为 MOV 文件

我想转换一些视频以便可以在佳能数码相机上播放。

佳能 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,而佳能视频为 21588 kb/s。

但尽管如此,佳能相机仍然无法播放视频。:-(

相关内容