·您当前的位置:首页 > 技术教程 > FFmpeg技术 >

[ffmpeg]如何使用ffmpeg下载分段并加密的m3u8视频流

时间:2017-04-19 14:52cnblogs.com
有些网站使用 flash 在线播放视频,不方便进行下载。可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频流的地址。

有些网站使用 flash 在线播放视频,不方便进行下载。可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频流的地址。


多媒体处理工具 FFmpeg 0.10.1 发布

取得 h.264 视频流的地址

1. 在页面上打开 Developer Tools (开发者工具),点击坐上的"手机"按钮(如下图)。

 

2. 在左边 "Device" 选择 "Apple iPhone" 或 "Apple iPad" 等设备,刷新页面。

3. 这时页面应该会提供 html5 的视频播放支持,定位到播放器元素,找到数据源链接(通常是一个 m3u8 文件)。

如何下载分段并加密的 .m3u8 视频流

1. 下载一个编译好的 ffmpeg 可执行文件(http://ffmpeg.org)。

2. 使用命令 ffmpeg -i http://...m3u8 -c copy out.mkv 将视频流下载并合并成 out.mkv。

4. 如果视频流并未加密,或者加密密钥(URI 存在于 m3u8 中)可以直接通过 http 访问到,通常可以正常下载(这种情况一般也可以用各种浏览器视频下载插件下载),但如果 URI 通过 https 协议,或者有 cookies 验证等机制,则需要手动下载密钥。

5. m3u8 中的密钥通常是这样的:#EXT-X-KEY:METHOD=AES-128,URI="https://xxx" 这时需要用能够在线观看到这个视频的浏览器会话去访问这个 URI (通过 cookies 验证),并保存到本地,把 m3u8 也保存到本地,密钥的 URI 改为下载好的本地路径(一个 m3u8 中可能有多个密钥,需要一一处理)。

6. 再次执行 ffmpeg 的命令,即可正常下载。

注:

使用 ffmpeg 无法直接下载 m3u8 内容的情况:

1. m3u8 中的密钥的 URI 是走 https 协议的(这时 ffmpeg 一般会提示不支持 https 协议,但可以通过自己编译一个 ffmpeg 来打开 https 的支持)。

2. URI 有 cookies 认证(这种情况应该只能用浏览器先下载密钥了)。来源:http://www.cnblogs.com/fatlyz/p/4293669.html

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器