video - 手动计算 Youtube 视频比特率
问题描述
我是视频处理世界的新手。我的目标是了解 YouTube 如何在https://support.google.com/youtube/answer/2853702?hl=en上发布 720p @ 60fps 视频的 2,250-6,000 Kbps 视频比特率。我现在忽略了音频。
以下是我的理解:
3x8bit* 颜色深度的最终视频比特率 =(以像素为单位的水平长度 x 以像素为单位的垂直长度)x(以 fps 为单位的帧速率)x(3 * 8 位编码)x(压缩)
所以,
Final Video Bitrate for 1280x720p 60fps = (1280 * 720) x (60) x (24) x (compression factor)
= (921600) x (60) x (24) x (compression factor)
= 1.327Gbps x (compression factor)
现在,上面的结果与 ToolStud.io** 的结果相同。但是,YouTube 表示 720p60fps 的最大比特率范围为6Mbps 。YouTube 使用VP9 编解码器。我debug info
在 YouTube 视频上发现了这个。
问:如果上面的计算是正确的,那么压缩系数大约是 216 1.3e9/6e6=216.66
。这甚至可能吗?我想我错过了一些东西。
有人可以指导我吗?我在 stackoverflow 上花了大约 2 个小时并找到了一些链接(如何正确估计 mp4 H.264 视频大小?,从视频视频中计算比特率等),但我找不到任何好的解释。他们更关注文件的大小而不是视频比特率。
谢谢你的帮助。
*YouTube 似乎在https://support.google.com/youtube/answer/6039860?hl=en推荐 3x8 位 = 24 位色深
** ToolStud.io提供了一个计算未压缩视频比特率的工具。
解决方案
是的,你的数字是正确的。除了视频可能是 YUV420p,因此每像素 12 位。是的,这种压缩是很有可能的。Youtube 没有做任何特别的事情。您可以使用 ffmpeg 之类的工具设置 2.5Mbps - 6Mbps 的比特率
推荐阅读
- c - 如何防止 SetWindowPos() 使窗口全屏?
- testing - Testcafe:有没有办法让页面之间的登录会话保持完整?
- mysql - 在nodejs服务器中使用mysql时如何读取查询返回的结果?
- excel - WEKA 显示我在 ARFF 文件中的第一个变量以字符 
- c++ - 哪个更好,单 for 循环或双 for 循环迭代二维数组?C++
- ios - 在 UITableViewCell 中将图像添加到 UIImageView 会不希望地修改图像视图高度
- python - 为什么即使在成功安装模块后尝试导入 textract 时仍然出现 ModuleNotFoundError?
- python - 使用字典构建匹配系统
- python - opencv创建圈出界
- sql - AND 与 ORDER BY 有什么用?