← 博客

如何使用FFmpeg将视频转换为MP4、WebM、MOV格式(2026年指南)

学习如何使用FFmpeg通过逐步命令在MP4、WebM、MOV和AVI格式之间转换视频。此外,探索WaveSpeed Desktop提供的更快速的一键替代方案。

3 min read

需要将视频从 MOV 转换为 MP4?或者压缩 WebM 文件以便网络传输?FFmpeg 是最强大的视频转换命令行工具——但它的学习曲线相当陡峭。本指南涵盖了所有常见的视频转换场景,提供可直接复制粘贴的精确命令。

如果你更想完全跳过终端操作,我们在文末会介绍一个免费的一键替代方案


前置条件:安装 FFmpeg

FFmpeg

开始之前,你需要在系统上安装 FFmpeg。

macOS(Homebrew):

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows:

  1. ffmpeg.org 下载
  2. 解压压缩包
  3. bin 文件夹添加到系统 PATH

验证安装:

ffmpeg -version

如果这看起来已经很麻烦——别担心,后面还会更复杂。


基础视频转换

MOV 转 MP4

最常见的转换。苹果设备以 MOV 格式录制,但 MP4 具有更广泛的兼容性:

ffmpeg -i input.mov -c:v libx264 -c:a aac -movflags +faststart output.mp4

各参数说明:

  • -i input.mov — 输入文件
  • -c:v libx264 — 使用 H.264 编解码器编码视频
  • -c:a aac — 使用 AAC 编解码器编码音频
  • -movflags +faststart — 优化网络流媒体播放(将元数据移至文件开头)

MP4 转 WebM

WebM 更适合网页浏览器,且压缩率更高:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm

参数说明:

  • -c:v libvpx-vp9 — VP9 视频编解码器(YouTube 使用)
  • -crf 30 — 质量等级(越低质量越好,15–35 为常用范围)
  • -b:v 0 — 让 CRF 控制码率
  • -c:a libopus — Opus 音频编解码器(WebM 的最佳选择)

MP4 转 MOV

ffmpeg -i input.mp4 -c:v prores_ks -profile:v 3 -c:a pcm_s16le output.mov

此命令生成 ProRes MOV 文件,适用于 Final Cut Pro 或 DaVinci Resolve 的专业剪辑。

AVI 转 MP4

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac output.mp4

MKV 转 MP4

MKV 转 MP4 通常无需重新编码(仅重新封装),速度快得多:

ffmpeg -i input.mkv -c copy output.mp4

-c copy 参数直接复制流而不重新编码。此方法仅在 MKV 内部编解码器与 MP4 兼容时有效(通常为 H.264 + AAC)。


高级选项

使用 CRF 控制视频质量

CRF(恒定码率因子)控制质量与文件大小之间的平衡:

ffmpeg -i input.mov -c:v libx264 -crf 18 -c:a aac output.mp4
CRF 值质量适用场景
0无损归档存储
18视觉无损高质量输出
23默认质量与大小平衡
28较低质量小文件体积
51最差不推荐使用

设置指定码率

ffmpeg -i input.mov -c:v libx264 -b:v 5M -c:a aac -b:a 192k output.mp4
  • -b:v 5M — 5 Mbps 视频码率
  • -b:a 192k — 192 kbps 音频码率

更改分辨率

缩放至 1080p:

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -c:a aac output.mp4

保持宽高比缩放至 720p:

ffmpeg -i input.mov -vf "scale=-1:720" -c:v libx264 -c:a aac output.mp4

更改帧率

转换为 30fps:

ffmpeg -i input.mov -r 30 -c:v libx264 -c:a aac output.mp4

两遍编码(最佳质量)

在目标码率下获得最佳质量:

ffmpeg -i input.mov -c:v libx264 -b:v 5M -pass 1 -an -f null /dev/null
ffmpeg -i input.mov -c:v libx264 -b:v 5M -pass 2 -c:a aac output.mp4

Windows 系统请将 /dev/null 替换为 NUL


批量转换

将所有 MOV 文件转换为 MP4

Linux/macOS:

for f in *.mov; do
  ffmpeg -i "$f" -c:v libx264 -crf 23 -c:a aac "${f%.mov}.mp4"
done

Windows(PowerShell):

Get-ChildItem *.mov | ForEach-Object {
  ffmpeg -i $_.Name -c:v libx264 -crf 23 -c:a aac ($_.BaseName + ".mp4")
}

常见错误及解决方法

“Codec not found” 或 “Unknown encoder” 可能需要安装包含额外编解码器支持的 FFmpeg:

# macOS
brew reinstall ffmpeg

# Ubuntu
sudo apt install ffmpeg libavcodec-extra

“Invalid data found when processing input” 输入文件可能已损坏。尝试:

ffmpeg -err_detect ignore_err -i input.mov -c copy output.mp4

输出文件体积过大 忘记设置 CRF 或码率。不指定质量参数时,FFmpeg 可能使用极高码率:

# 添加 -crf 23 以获得合理的质量/大小比
ffmpeg -i input.mov -c:v libx264 -crf 23 -c:a aac output.mp4

“height/width not divisible by 2” 某些编解码器要求尺寸为偶数:

ffmpeg -i input.mov -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 output.mp4

跳过终端:改用 WaveSpeed Desktop

说实话——记住编解码器名称、CRF 值、两遍编码参数和批量转换脚本,并不是每个人都乐意做的事。

WaveSpeed Desktop 内置了视频转换器,一键即可完成上述所有操作:

  • 拖放视频文件
  • 选择输出格式(MP4、WebM、MOV、AVI)
  • 点击转换——完成

无需安装 FFmpeg,无需终端,无需记忆任何参数。

WaveSpeed Desktop Video Converter

免费下载 WaveSpeed Desktop: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


常见问题

在线分享视频的最佳格式是什么? MP4 格式配合 H.264 视频和 AAC 音频。几乎所有平台、浏览器和设备都支持此格式。

视频转换会降低画质吗? 重新编码总会带来一定程度的质量损失。尽量使用 -c copy 避免重新编码。如果必须重新编码,使用较低的 CRF 值(18–20)可获得接近无损的质量。

FFmpeg 转换视频需要多长时间? 取决于文件大小、编解码器和硬件配置。在现代硬件上,1GB 的 MOV 转 MP4 通常需要 2–10 分钟。使用 -c copy(重新封装)则只需数秒。

FFmpeg 能处理 4K 和 8K 视频吗? 可以,但高分辨率视频编码非常消耗 CPU 且速度较慢。建议使用硬件加速(NVIDIA GPU 使用 -c:v h264_nvenc)以提高处理速度。