如何从 YouTube 视频中获取比特率信息?

Posted

技术标签:

【中文标题】如何从 YouTube 视频中获取比特率信息?【英文标题】:How to get the information of bit-rate from YouTube videos? 【发布时间】:2017-07-10 03:58:43 【问题描述】:

我正在使用 YouTube 视频进行测试,我想知道如何获取播放视频的比特率信息?

我使用了 2 种方法来了解有关比特率的信息,但没有得到任何信息。

1. Right-click on a video and choose "Stats for nerds".
2. ffmpeg -i input_video -f ffmetadata metadata.txt

我不知道是否通过右键单击视频然后属性,然后详细信息会给我显示比特率的正确方法。

有什么建议吗?

【问题讨论】:

因为它对我的实验很重要。 【参考方案1】:

大多数 YouTube 视频使用自适应比特率 (ABR) 格式流式传输,这意味着不只是单一的比特率。

对于 ABR,创建了多个比特率版本的视频,每个版本都被分解为相等长度(按时间)的块 - 例如10 秒块。

然后,客户端播放器能够从最适合当前网络条件的比特率流中选择下一个块 - 如果网络繁忙,它可以为下一个块下降到较低的比特率,反之亦然,如果网络很好。

因此,对于整个视频来说,实际上并没有单一比特率的概念,而是为每个下载的块提供不同的比特率(尽管在实践中,如果您有良好的连接,它应该可以达到最高比特率并且留在那里)。

正如您所说,您可以通过右键单击并查看“书呆子的统计信息”选项在 YouTube 上看到此内容的可视化 - 请参见下面的示例:

您还可以查看可用的分辨率,并通过单击右下角的“滚轮”强制玩家选择一个。作为一般规则,更高的分辨率需要更多的比特数,因此意味着更高的比特率,

要查看视频缓冲区和比特率的更详细视图,一些播放器提供了一个演示视图,其中显示了随时间的变化 - 请参见下面来自 DASH IF 参考播放器 (https://reference.dashif.org/dash.js/latest/samples/dash-if-reference-player/index.html) 的示例:

【讨论】:

@jaepage - 是的设置图标,是的,你是对的,它是分辨率而不是比特率,上面已更正。两者在实践中是密切相关的,一般来说分辨率越高,码率越高,但实际的码率在图形图片本身。 这是您的连接带宽 - 不是视频的实际比特率 - 您以 14.8Mbit/s 的速度下载视频块,但如您所见 - 大多数时候您没有下载任何内容(仅在网络活动图中的那些短暂峰值期间)。 @AdamK。 - 每次播放器请求下一个视频块时,它通常根据其对当前网络条件和设备能力的评估来决定为下一个块请求什么分辨率。因此,如果它看到良好的吞吐量,它将要求更高的分辨率,只要设备可以显示它。这将使用更多位,因此您可以获得更高的视频传输比特率。播放器和视频服务器看不到连接上的其他流量。我添加了一个示例,该示例更详细地显示了这一点,希望有助于更好地说明这一点。

以上是关于如何从 YouTube 视频中获取比特率信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ffprobe 从 HLS/M3U8 文件中检测视频比特率

如何在 iOS 中检查视频的分辨率、比特率

IOS - 比特率文件视频 hls

怎么看视频比特率?

多媒体网络的一些知识

如何在 iOS 中获取现有 MP3 或 AAC 的比特率?