第三章 核心概念:容器、编码与参数
说实话,我刚入行那会儿,也分不清「容器」和「编码」到底有啥区别。有一次客户给我一个 .mkv 文件,说打不开,我折腾了半天才发现——不是文件坏了,是播放器不支持这个容器。嗯,从那以后,我就把这两个概念刻在脑子里了。
这一章,咱们就把转码最核心的几个概念讲透。你搞懂了这些,后面写 FFmpeg 命令就是水到渠成的事。
3.1 容器格式:视频的「包装盒」
容器格式,说白了就是视频的包装盒。它负责把视频流、音频流、字幕、章节信息这些东西打包在一起。你想想看,一个电影文件里,有画面、有声音、可能有中英文字幕——容器就是那个把它们装在一起的盒子。
一句话记住:容器 ≠ 编码。容器是盒子,编码是盒子里的内容。
常见的容器格式
| 容器 | 特点 | 我常用的场景 |
|---|---|---|
| MP4 | 兼容性最好,几乎所有设备都支持 | 网页播放、手机分享、社交媒体上传 |
| MKV | 功能最全,支持多音轨、多字幕、章节 | 个人收藏、蓝光原盘备份、多语言电影 |
| AVI | 老牌格式,兼容性好但功能少 | 老旧设备、特定工业软件 |
| MOV | 苹果生态原生,专业剪辑常用 | Final Cut Pro 工作流、苹果设备拍摄 |
| TS/MTS | 广播电视、摄像机录制常用 | 直播录制、摄像机原始素材 |
我的小建议:如果你不确定用啥容器,选 MP4 准没错。我在项目中遇到过太多次「客户说打不开」的情况,最后发现换成 MP4 就解决了。
3.2 编码格式:视频的「压缩算法」
容器是盒子,那编码就是盒子里的东西怎么压缩。编码格式决定了视频的画质和文件大小之间的平衡。我经常跟新人说:编码选对了,转码就成功了一半。
主流视频编码对比
| 编码 | 压缩率 | 画质 | 兼容性 | 我的评价 |
|---|---|---|---|---|
| H.264 (AVC) | 中等 | 优秀 | 极好(所有设备都支持) | 万金油,最稳妥的选择 |
| H.265 (HEVC) | 高(比 H.264 省 30-50% 码率) | 优秀 | 较好(新设备支持,老设备可能不行) | 省空间首选,但编码慢 |
| VP9 | 高 | 优秀 | 一般(浏览器支持好,硬件支持少) | YouTube 在用,开源免费 |
| AV1 | 极高(比 H.265 再省 30%) | 极好 | 差(编码极慢,硬件解码少) | 未来趋势,目前还太慢 |
避坑指南:我曾经把一个 4K 视频转成 H.265,结果客户的老电视放不出来。后来我学乖了——给客户交付前,先问清楚对方的播放设备。H.264 虽然文件大一点,但兼容性最好,不会出幺蛾子。
3.3 码率:视频的「数据流量」
码率,就是每秒钟视频用了多少数据量。单位是 kbps(千比特每秒)或 Mbps(兆比特每秒)。码率越高,画质越好,文件也越大。
你想想看,同样一个 1080p 的视频:
- 低码率(1-2 Mbps):画面模糊,有马赛克,适合网络直播
- 中等码率(5-10 Mbps):画质不错,适合在线视频
- 高码率(20-50 Mbps):画质极好,适合蓝光原盘
码率类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
| CBR(固定码率) | 全程码率不变 | 直播、视频会议(需要稳定带宽) |
| VBR(可变码率) | 复杂画面用高码率,简单画面用低码率 | 本地存储、点播(效率最高) |
| CRF(恒定质量) | 设定质量等级,让编码器自己决定码率 | 个人收藏、归档(我最喜欢的方式) |
我个人习惯:做本地备份时,H.264 用 CRF 18-20,H.265 用 CRF 22-24。这个范围画质和体积的平衡最好。给客户交付时,我会用 VBR 2-pass,码率设一个上限,保证质量稳定。
3.4 帧率:视频的「流畅度」
帧率就是每秒钟显示多少张画面,单位是 fps(帧每秒)。帧率越高,动作越流畅,但文件也越大。
常见帧率
- 24 fps:电影标准,有「电影感」
- 25 fps: PAL 制式电视标准(中国、欧洲)
- 30 fps: NTSC 制式电视标准(美国、日本)
- 50/60 fps: 体育直播、游戏录制,非常流畅
- 120/240 fps: 慢动作拍摄
注意:帧率不是越高越好。我曾经把一段 24fps 的电影强行转成 60fps,结果画面出现了「肥皂剧效应」——太流畅了反而失去了电影感。除非你做游戏或体育内容,否则别乱升帧率。
3.5 分辨率:视频的「清晰度」
分辨率就是画面有多少个像素点。常见的分辨率有:
| 名称 | 分辨率 | 宽高比 | 像素数 |
|---|---|---|---|
| SD (标清) | 720×480 / 720×576 | 4:3 或 16:9 | 约 34 万 |
| HD (高清) | 1280×720 | 16:9 | 约 92 万 |
| Full HD (全高清) | 1920×1080 | 16:9 | 约 207 万 |
| 2K | 2048×1080 | 17:9 | 约 221 万 |
| 4K (UHD) | 3840×2160 | 16:9 | 约 830 万 |
| 8K | 7680×4320 | 16:9 | 约 3318 万 |
3.6 知识体系总览
下面这张图,把这一章的核心概念串起来了。你一看就明白它们之间的关系。
3.7 它们之间的关系
搞清楚了每个概念,咱们来看看它们怎么配合。我举个例子:
你有一个 4K 视频,原始文件 50GB。你想压缩到 2GB 左右,在手机上播放。那你的选择就是:
- 容器:MP4(手机兼容性最好)
- 编码:H.265(省空间,手机新芯片都支持硬解)
- 分辨率:降级到 1080p(手机屏幕小,4K 浪费)
- 帧率:保持 30fps(手机播放足够)
- 码率:VBR 目标 5 Mbps(2GB 左右)
记住这个公式:
文件大小 ≈ 码率 × 时长
码率 ≈ 分辨率 × 帧率 × 编码效率
你调整任何一个参数,都会影响最终的文件大小和画质。
3.8 实战小练习
光说不练假把式。给你一个思考题:
你有一段 1080p 60fps 的游戏录像,原始文件 10GB。你想上传到 B站,B站推荐码率是 6 Mbps。你会怎么选参数?
我的思路是这样的:
- 容器选 MP4,B站原生支持
- 编码选 H.264,兼容性最好,B站二压也少
- 分辨率保持 1080p,游戏画面细节多,降分辨率可惜
- 帧率降到 30fps,除非是竞技游戏,否则 60fps 没必要
- 码率设 VBR 6 Mbps,符合平台要求