在上一篇容器和编解码器一文中,您学习了如何更改媒体文件的容器(扩展名)和编解码器。在介绍分辨率之前,本文将先介绍如何更改比特率。
比特率和分辨率与媒体文件中的数据量相关。这点毋庸置疑,但我们还是要说明一下。您始终可以降低比特率和分辨率,但提高它们就会成为问题。如果没有专用软件和算法,质量将会受到影响。
因此,请务必使用您能找到的质量最高的源文件来开始转换流程。在执行任何操作之前,即使是在更改编解码器或容器之前,也请检查文件的显示特性,并验证源文件的比特率或分辨率是否高于您期望的结果。
比特率是用于对 1 秒的媒体流进行编码时使用的最大位数。用于编码一秒流的比特越多,保真度就越高。
不出所料,网络能够处理的不同比特率较低。下表显示了在常见网络条件下,您应以什么码率为目标。为方便比较,我们还添加了蓝光和 DVD 的值。
投放方式 | 比特率 |
---|---|
蓝光 | 20 Mb/s |
DVD | 6 Mb/s |
桌面版网站 | 2 MB |
4G 移动网络 | 0.7 MB |
3G 移动网络 | 0.35 MB |
2G 移动网络 | 取决于网络类型。 EDGE:0.4 Mb/s GPRS:0.04 Mb/s |
我应该为网页上的视频使用哪个值?简短回答是:至少包括桌面设备、4G 和 3G。如果您要在被称为“下一个十亿用户”的市场(例如印度)中投放视频,则还需要添加 2G 网络。出于演示目的,我们将以 3G 为目标平台。
使用 FFmpeg 时,您可以使用(不出所料!)比特率 (-b
) 标志设置比特率。
如果您未安装 FFmpeg,请参阅媒体应用基础知识,了解如何使用 Docker 进行设置。
MP4
/media # ffmpeg -i glocken.mov -b:v 350k -b:a 64k glocken_3g.mp4
WebM
/media # ffmpeg -i glocken.mov -b:v 350k -b:a 64k glocken_3g.webm
请注意,有两个比特率标志,即 -b:a
和 -b:v
。一个用于音频串流,另一个用于视频串流。
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 531117 Mar 7 13:42 glocken_3g.mp4
-rwx------ 1 root root 706119 Mar 7 13:46 glocken_3g.webm
现在,文件已准备就绪,接下来需要调整其分辨率。