什么是 FFmpeg?为什么你应该了解它?
你是否曾经因为手机不支持视频格式而无法播放?或者你想从 YouTube 视频中提取 MP3 歌曲,但不确定该用哪个应用?通常,人们寻找的快速解决方案是从网上下载免费的转换器应用。不幸的是,这些免费应用往往充斥着烦人的广告,限制文件大小,甚至会在最终结果上嵌入水印。
这就是 FFmpeg 作为无名英雄登场的地方。
FFmpeg 是一款基于命令行的 开源 软件(CLI/命令行界面),在处理多媒体文件方面极为可靠。从转换文件格式、裁剪时长、合并多个文件、更改分辨率、减小视频文件大小,到实时流媒体,这个工具都能做到。
尽管它的界面只是一个黑色的终端或命令提示符窗口,没有视频编辑应用常见的彩色按钮,但 FFmpeg 被认为是音视频世界中的 瑞士军刀。
谁在使用 FFmpeg?
也许你今天第一次听到 FFmpeg 这个名字。但无论你是否意识到,你几乎每天都在使用基于 FFmpeg 的技术。
像 YouTube、VLC 媒体播放器、HandBrake、Discord、Plex 甚至 Google Chrome 等科技巨头都在幕后使用 FFmpeg 的库。每当你将视频上传到社交媒体平台,平台处理你的视频使其可以在各种分辨率下观看时,FFmpeg 技术都在后台发挥着重要作用。
不仅仅是大型公司;FFmpeg 也受到 开发者、内容创作者、视频编辑甚至普通用户的喜爱,他们希望一次自动处理数百个文件,而无需逐个打开笨重的应用程序。
FFmpeg 包中的三个主要组件
当你下载 FFmpeg 包时,你实际上得到的不仅仅是一个程序。里面有三个主要工具,每个都有自己的功能:
ffmpeg:负责转换、录制、处理和流媒体媒体文件的核心工具。ffplay:一个基于 CLI 的简单媒体播放器。如果你想直接从终端快速播放媒体文件,而无需打开常规视频播放器,这个工具非常有用。ffprobe:一个媒体文件分析工具。如果你想获取文件的详细信息,例如使用的 编解码器、帧率、比特率、分辨率,甚至内部的音轨,这个工具会全部显示出来。
FFmpeg 如何工作(不让你困惑)
简单来说,FFmpeg 如何处理视频或音频文件?
你可以把这个过程想象成拆开并重新打包一个包裹。当你向 FFmpeg 输入命令时:
- 解复用:FFmpeg 读取输入文件并分离视频、音频和字幕轨道。
- 解码:仍处于压缩状态的视频和音频数据被解码为原始数据。
- 过滤:如果你添加了裁剪大小、更改分辨率或调整音量等效果,FFmpeg 会将它们应用于这些原始数据。
- 编码:处理后的原始数据使用你想要的 编解码器(例如 H.264 或 AAC)再次压缩。
- 复用:视频和音频轨道被重新组合成新的容器格式(如 .mp4 或 .mkv)。
所有这些复杂的过程只需几秒到几分钟,具体取决于你的电脑配置,而你只需用一条简短的命令行即可运行它们。
最常用的基本 FFmpeg 命令
我们先暂时抛开理论。学习 FFmpeg 的最好方法就是直接尝试。以下是一些你在日常使用中最常需要的实用命令:
1. 转换视频格式(例如 MKV 到 MP4)
在 FFmpeg 中转换视频格式非常简单。你只需指定源文件名和带有所需扩展名的目标文件名。
ffmpeg -i old_video.mkv new_video.mp4
-i 选项表示 输入。FFmpeg 会自动检测源格式,并为目标格式选择最佳的 编解码器。
2. 从 MP4 视频中提取 MP3 音频
想从音乐视频中提取歌曲而不处理视频?你可以立即提取音频。
ffmpeg -i recording.mp4 -vn result_song.mp3
-vn 选项指示 FFmpeg 禁用视频轨道(无视频),因此只保存音频轨道。
3. 裁剪视频时长
如果你想获取从第 1 分钟(00:01:00)开始、持续 30 秒的视频片段:
ffmpeg -i long_video.mp4 -ss 00:01:00 -t 30 -c copy clip.mp4
选项说明:
-ss 00:01:00:裁剪的开始时间。-t 30:片段的持续时间(30 秒)。-c copy:直接复制视频和音频数据,而不进行 重新编码。这个过程非常快(只需 1-2 秒),而且完全不会降低视频质量。
4. 压缩视频文件大小
你有一个 1 GB 的手机录像文件,想缩小它以便通过即时通讯应用轻松发送?你可以使用 CRF(恒定速率因子)控制。
ffmpeg -i big_video.mp4 -vcodec libx264 -crf 24 small_video.mp4
x264 编解码器的 CRF 值通常在 0 到 51 之间。值越高,文件大小越小,但视觉质量会下降。要达到大小和质量的平衡,理想值通常在 18 到 28 之间。
5. 更改视频分辨率(缩放)
使用以下命令可以将视频分辨率从 4K 或全高清(1080p)降低到高清(720p):
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
-vf scale 选项用于对视频的宽度和高度应用缩放滤镜。
使用 FFmpeg 的主要优势
与 Adobe Premiere、HandBrake 或 CapCut 等图形用户界面(GUI)视频处理应用相比,FFmpeg 有几个突出的优势:
- 轻量且对系统友好:FFmpeg 不需要大量内存来运行可视化界面。计算机的所有计算能力都 100% 集中在处理媒体文件上。
- 可自动化(Automation):你可以创建简单的 脚本 来自动处理数百个文件。例如,一键将文件夹中的所有 .avi 文件转换为 .mp4。
- 免费且无广告:免费用于个人和商业用途,没有限制。
- 跨平台:在 Windows、macOS、Linux 上运行流畅,甚至可以安装在网络服务器上。
结论
对一些人来说,在终端中看到文本命令行一开始可能会感到害怕。但尝试了一些基本命令后,你会意识到 FFmpeg 是多么实用和高效。
你不需要记住其中数百个参数。只需在个人笔记中保存几个你最常用的命令。当你需要快速、节省资源、无忧的媒体处理时,FFmpeg 随时准备成为你的首选工具。
作者
Wilan
巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。