是否可以通过网络读取mp4的特定部分?

时间:2016-09-18 23:20:56

标签: python html5 video

现代MP4播放器让您无需下载整个视频即可跳转到视频中的任何位置

以下是视频示例: http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

您可以在下载视频之前跟踪任何位置。我想知道是否有一个python库可以从流中的某个位置读取视频而无需下载整个视频。

1 个答案:

答案 0 :(得分:2)

这取决于视频流的特定格式,特别是正在使用的流格式,但通常情况下是可能的。

例如,这就是Netflix等视频客户端中的书签通常可以正常工作的方式。

新兴的流媒体行业标准MPEG DASH使用索引文件或清单,其中包含指向构成视频的各个流的链接 - 即视频流,音频,字幕等。

将流分成相等的时间长度段,例如10秒块,并且播放器在正常播放期间顺序下载它们。这允许客户端向上或向下切换到视频的不同比特率版本以匹配当前的网络条件。

提供流支持它,它还允许客户端在特定时间偏移处请求段 - 这并不总是支持,因为您不能请求实时事件的未来段,并且某些流也可能限制可用性过去的细分取决于内容所有者的意愿。

其他流媒体格式,HLS,平滑流媒体等具有类似的机制。

如果您的mp4只是服务器上托管的静态文件,并且没有使用任何自适应流媒体协议,那么只要您的服务器和客户端支持字节范围请求,您仍然可以请求该文件的特定块。虽然您可能需要明确配置服务器以启用该功能,但大多数服务器和客户端现在都支持此功能。请参阅:https://en.wikipedia.org/wiki/Byte_serving