复制

复制

我正在尝试使用 ffmpeg 将 .mov 视频转换为 .mp4:

ffmpeg -i ~/Desktop/Sample.mov ~/Desktop/Sample.mp4

但这不起作用,当我尝试在 QuickTime 中打开制作的视频时,它告诉我该文件已损坏或采用 QuickTime 无法识别的格式。

我怎样才能让它工作?

答案1

为了转换视频,我喜欢使用 Handbrake。您可以在这里找到它:https://handbrake.fr/我在 Linux 上使用它,但它在 MAC 上也应该能很好地运行。

对于 HandBrake:

handbrakecli -i {in-video}.mov -e x264 -E facc -o {out-video}.mp4

对于 ffmpeg:

ffmpeg -i {in-video}.mov -vcodec h264 -acodec aac {out-video}.mp4

答案2

复制

你可以流复制如果 MOV 文件包含与 MP4 兼容的视频和音频:

ffmpeg -i input.mov -c copy -movflags +faststart  output.mp4
  • 流复制(-c copy)就像“复制和粘贴”,因此可以保留质量并且速度很快。
  • -movflags +faststart制作一个可用于 HTML5 流媒体的输出文件,例如,将开始播放所需的所有必要信息放在文件开头。如果您只关心本地桌面使用情况,则可以忽略这一点。
  • 与 MP4 兼容的视频格式包括:H.264、H.265/HEVC、AV1(新格式,因此并非普遍支持)、MPEG-4(旧格式,HTML5 不支持)。
  • 与 MP4 兼容的音频格式包括:AAC、MP3(播放支持取决于播放器)、Opus(新格式,因此并非普遍支持)。

编码

这会将 MOV 转换为 H.264 视频和 AAC 音频:

ffmpeg -i input.mov -c:v libx264 -c:a aac -vf format=yuv420p -movflags +faststart output.mp4
  • -c:v libx264选择编码器libx264输出H.264视频。
  • -c:a aac选择编码器 aac 输出 AAC 音频。
  • -vf format=yuv420p选择 YUV 4:2:0像素格式. libx264 支持多种像素格式,默认情况下会选择与输入最相似的像素格式。但并非所有播放器都支持所有像素格式。yuv420p是最兼容且得到普遍支持的。
  • -movflags +faststart网络优化Handbrake 中的选项。编码完成后,它会将一小块信息从文件末尾移到开头,这样在通过下载观看时就可以更快地开始播放。

FFmpeg 维基:H.264FFmpeg 维基百科:AAC了解更多信息,包括 CPU 时间、质量和比特率设置。(x264 的默认值为-preset medium -crf 23

相关内容