题外话:科比的直升机坠落,意外身亡;珍惜当下,珍惜战斗在一线的工作人员:
“哪里有什么白衣天使,
不过是一群孩子,
换了身衣服,学着前辈的样子,
治病救人,跟死神抢人罢了... ...”
致敬伟大的医生、白衣天使,请爱护他/她们!
一、背景
在办理一起传播淫秽物品案中,发现现在的传黄案跟以往相比有了很大的不同,已经用上了“切片”技术,即将一个视频文件“打散”存储在不同的位置,利用切片列表下载完成后进行合成,使边下边播成为了在线观看的主流新模式。
在这里看到的切片是m3u8格式的,我们即以这个为基准来介绍。
在之初,我们找了互联网上的工具来处理,但总觉得效果不理想,也就将就着用;用着用着,就萌生了想法... ...,找了些资料,做了个初版,办案单位试用后,提出了一些改进,形成了现在的成品。
当时沿用案件上的m3u8文件来做程序名,其实有很多流媒体都可以用它来处理,不仅局限于m3u8。
二、m3u8格式文件
1、m3u8格式:
M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。
上述文字定义来自于维基百科。可以看到,m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。
HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。
简而言之,HLS 是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录于 m3u8 文件(即 playlist)内,其中附带一些额外描述(比如该资源的多带宽信息... ...)用于提供给客户端。客户端依据该 m3u8 文件即可获取对应的媒体资源,进行播放。
因此,客户端获取 HLS 流文件,主要就是对 m3u8 文件进行解析操作。
2、m3u8 文件:
m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。
当 m3u8 文件作为媒体播放列表(Meida Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。
对于点播来说,客户端只需按顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要定时重新请求该 m3u8 文件,看下是否有新的片段数据需要进行下载并播放。
当 m3u8 作为主播放列表(Master Playlist)时,其内部提供的是同一份媒体资源的多份流列表资源(Variant Strean)。
该备用流资源指定了多种不同码率,不同格式的媒体播放列表,并且,该备用流资源也可同时提供不同版本的资源内容,比如不同语言的音频文件,不同角度拍摄的视屏文件等等。客户可以根据不同的网络状态选取合适码流的资源,并且最好根据用户喜好选择合适的资源内容。
太复杂,也就不介绍了,看程序。
三、软件界面
双击m3u8Download.exe,程序运行的界面如图:
四、使用指南
程序启动后即出现界面,分为三个区“单个文件”、“批量文件”和“日志”区;
“单个文件”:如图
在界面中输入单个文件名,以m3u8结尾的文件名或url指向;
“批量文件”:如图
在界面处“批量文件”:这里是指向一个文本文件,文本文件里包含了m3u8的url,一行一个;
“放置目录”:视频下载后放置在哪里;
点击开始后,即可以下载,在下载时会弹出一个子窗口,实现播放功能,这个是可以在界面上进行控制的,“预播”可以选或不选;
流媒体可以边下边播,这点实在暖心:
因为是边下边播,所以在放置视频目录下形成了切片文件:
待全部下载完成后会进行自动合成,关于切片的合成,放在明天来讲。
旁注:我的微信公众号:MicroPest,当孩子得知我用这个作为公众号的名字,笑得前仰后合、喘不上气... ...
难得时间这么集中,坚持每天都更(年三十空缺);给自己一个梳理文字的机会,我一直认为它们是有灵魂的。
原文始发于微信公众号(MicroPest):流媒体下载工具m3u8Downloader
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论