乐知付加密服务平台

如果你有资源, 平台可以帮你实现内容变现, 无需搭建知识付费服务平台。

点击访问官方网站 https://lezhifu.cc

扫码关注公众号 乐知付加密服务平台-微信公众号
html视频流媒体m3u8文件解析 | chenzuoli's blog

html视频流媒体m3u8文件解析

最近下载解析某视频网站上的视频,想下载下来,一顿操作猛如虎,发现获取到的视频文件不是mp4,不是flv,不是mav,而是m3u8格式的,只有几十B大小。
那这个m3u8格式的视频文件是怎么加载到视频的呢?
且看下文。

流媒体文件格式

M3U8视频是一种流媒体文件格式。

M3U8文件是UTF-8编码格式的M3U文件,主要用于描述多段音频和视频数据的URL地址。它不是传统的下载后播放格式,而是直接在浏览器或移动设备上播放。M3U8文件通常用于存储和管理多个视频、音频和字幕流的播放列表。它基于HTTP Live Streaming(HLS)协议,支持直播和点播,并且可以实现多码率视频的适配,根据用户的网络带宽情况自动匹配合适的码率文件进行播放,从而保证视频的流畅度。

M3U8是一种常见的流媒体格式,主要以文件列表的形式存在,既支持直播又支持点播,尤其在Android、iOS等平台最为常用。

M3U8的优点

1、可以做多码率的适配。根据网络带宽,客户端会自动选择一个适合自己码率的文件进行播放,保证视频流的流畅,代表是苹果的HLS(HTTP Live Streaming)。HLS有一个特点:自适应码率流播(adaptive streaming),客户端可以根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。

2、降低源服务器的负载压力。M3U的特点是将流媒体切分为若干 TS 片段,然后通过一个扩展的 m3u 列表文件将这些 TS 片段集中起来供客户端播放器接收。这样做相比使用 RTSP 协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,普通的网络服务器即可,大大降低了 CDN 边缘服务器的配置要求,可以使用任何现成的CDN。分发使用的协议是最常见 HTTP,代理服务器对这个协议的缓存优化相当成熟,而很少有代理服务器对 RTSP 的进行缓存优化。

3、对于非实时视频,好处同样存在:播放使用HTTP协议的单个 MP4 格式的视频文件时,需要代理服务器支持 HTTP range request 以获取大文件中的一部分,但不是所有的代理服务器都对此有良好的支持。而 M3U 则只需要根据列表文件中的时间轴找出对应的 TS 片段下载即可,不需要 range request,对代理服务器的要求小很多。所有代理服务器都支持小文件的高效缓存。

4、为什么要用 TS 而不是 MP4,这是因为两个 TS 片段可以无缝拼接,播放器能连续播放,而 MP4 文件由于编码方式的原因,两段 MP4 不能无缝拼接,播放器连续播放两个 MP4 文件会出现破音和画面间断,影响用户体验。

下载

这里是python的代码演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"""
pip install m3u8-To-MP4==0.1.11
"""

import m3u8_To_MP4

if __name__ == '__main__':
# 1. Download videos from uri.
m3u8_To_MP4.multithread_download('https://svipsvip.ffzyread1.com/20240424/26411_4538b0e5/index.m3u8')

# 2. Download videos from existing m3u8 files.
# m3u8_file_path = '/Users/zuolichen/Downloads/index.m3u8'
# m3u8_To_MP4.multithread_file_download('https://svipsvip.ffzyread1.com/20240424/26411_4538b0e5/index.m3u8', m3u8_file_path)

# For compatibility, i reserve this api, but i do not recommend to you again.
# m3u8_To_MP4.download('http://videoserver.com/playlist.m3u8')

后面再记录下如何分段下载这类视频流媒体文件吧。

一起学习,一起进步。


欢迎关注微信公众号,你的资源可变现:【乐知付加密平台】
乐知付加密平台

一起学习,一起进步。

-------------本文结束感谢您的阅读-------------