使用 ffmpeg 将 .mov 视频转换为 .mp4

the*_*sti 13 video format ffmpeg macos-sierra macos

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

ffmpeg -i ~/Desktop/Sample.mov ~/Desktop/Sample.mp4
Run Code Online (Sandbox Code Playgroud)

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

我如何让这个工作?

ans*_*ker 30

要转换视频,我喜欢使用手刹。你可以在这里找到它:https : //handbrake.fr/我在 Linux 上使用它,但它也应该在 MAC 上运行良好。

对于手刹:

handbrakecli -i {in-video}.mov -e x264 -E facc -o {out-video}.mp4
Run Code Online (Sandbox Code Playgroud)

对于 ffmpeg:

ffmpeg -i {in-video}.mov -vcodec h264 -acodec aac {out-video}.mp4
Run Code Online (Sandbox Code Playgroud)

  • ffmpeg 对我来说效果很好 (4认同)

llo*_*gan 9

复制

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

ffmpeg -i input.mov -c copy -movflags +faststart  output.mp4
Run Code Online (Sandbox Code Playgroud)
  • 流复制 ( -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
Run Code Online (Sandbox Code Playgroud)
  • -c:v libx264 选择编码器 libx264 输出 H.264 视频。
  • -c:a aac 选择编码器 aac 输出 AAC 音频。
  • -vf format=yuv420p选择 YUV 4:2:0像素格式。libx264 支持多种像素格式,默认情况下会选择与输入最相似的像素格式。但并非所有播放器都支持所有像素格式。yuv420p是最兼容和普遍支持的。
  • -movflags +faststart与Handbrake 中的Web Optimized选项相同。编码完成后,它会将一大块信息从文件末尾移到开头,以便在通过下载查看时可以更快地开始播放。

请参阅FFmpeg Wiki:H.264FFmpeg Wiki:AAC了解更多信息,包括 CPU 时间、质量与比特率设置。(x264 的默认值为-preset medium -crf 23