如何根据网络环境切换码率(判别典型的码率)
文 / BRIAN DIPERT
原文链接 / https://blog.addpipe.com/typical-video-bitrates-with-html-media-capture-and-mediastream-recording-api/
最近有人问我们关于视频码率与文件大小的问题:对于低、中、高质量的,比如1分钟的视频响应,有典型的文件大小吗?
我的直接回答是这取决于许多因素,但后来我意识到我应该尝试挖掘数据。在我们的大型数据集中,我们应该找一些典型码率,特别是在处理大容量数据时的码率。
我们已经研究了从用户那里采集视频的两种机制以及它们产生的码率:
1.MediaStream Recording API:由我们的(内联)桌面录制客户端使用
2.HTML Media Capture:由我们的本地移动录制客户端使用
MediaStream Recording API
由于此API允许你从你的摄像头请求分辨率,我们看了3个典型的分辨率应该支持大多数USB/集成网络摄像头:
- 320x240
- 640x480
- 1280x720
我们从数据库中提取了2021年以该分辨率录制的第一万个视频,然后通过浏览器(Chrome 和 Firefox)进一步过滤。
对于分辨率为320x240的视频:
- 使用 Chrome 录制的5691个视频的平均码率为183 kb/s。
- 使用 Firefox 录制的超过374个视频的平均码率为2 Mb/s。
我怀疑码率的不同主要是因为Firefox(仅)使用VP8压缩视频数据,而Chrome使用的是H.264。
此外,我们没有所有视频的用户代理信息,这就是为什么视频的数量加起来没有达到一万。
对于分辨率为640x480的视频:
- 使用 Chrome 录制的超过7501个视频的平均码率为589 kb/s。
- 使用 Firefox 录制的超过181个视频的平均码率为2.64 Mb/s。
对于分辨率为1280x720的视频:
- 使用 Chrome 录制的超过6956个视频的平均码率为1.97 Mb/s。
- 使用Firefox 录制的超过1265个视频的平均码率为2.69 Mb/s。
有了高清录制,可以对摄像机质量和光线设置带来的差异留有余地(低光照环境产生的噪声图像很难有效编码)
你会看到两条平行的铬线在2Mbits/s标记附近。上面的是Windows上的Chrome,而下面的是macOS上的Chrome。我可能是错的,但我怀疑他们使用的是不同的H.264编码器。如果不是这样的话,那就是每个macOS设备上都有FaceTime摄像头。
下图是按操作系统划分的Chrome数据。
HTML Media Capture
这个API允许依靠操作系统的应用和功能来采集音频和视频。它适用于Android和iOS/iPadOS(但不能只用于音频录制)。
使用HTML Media Capture不能控制或指定分辨率,但是从以往经验来看,我们知道:
- 在iOS和iPadOS上,当你在现场录制时,你可以得到480x360(和它的纵向变化)或当从库中选择一个记录,可以得到1280x720(和它的纵向变化)。
- 在Android上,你可以获取设备配置的任何记录(不像在iOS/iPad OS上那样进行强制压缩)。
iOS & iPadOS
所以你可以看出:
1.当现场抓拍视频的时,894kbits/s(和480x360分辨率)
2.当选择库中一个预先录制的视频时,2.69 Mbits/s(和1280x720)
3.平均1.8 Mbits/s
我们还查看了通过HTML Media Capture从iOS/iPadOS获得的分辨率不同于480x360、1280x720及其纵向变体的视频数量。在一万个视频中,只有548个有不同的分辨率。
Android
使用Android上的HTML Media Capture,你可以获得设备上配置的任何内容。因此,我们看到了相当多的4k视频。因为你不能要求一个特定的分辨率,我们只计算了所有10k视频的平均分辨率为12.9 Mbits/s。
这是相同的数据,但按码率排序,可以更好地看到在20 Mbits/s标记附近的分组。
这些数字与来自浏览器的数据非常相关。在处理这些文件并对其中一些数据进行转码之后,数字可能会有所不同。例如,我们将VP8视频数据从Firefox转换为H.264,将Opus音频数据转换为AAC。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com