zoukankan      html  css  js  c++  java
  • 如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流

    有些网站使用 flash 在线播放视频,不方便进行下载。

    可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频流的地址。

    取得 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 认证(这种情况应该只能用浏览器先下载密钥了)。

     

  • 相关阅读:
    zoj 2316 Matrix Multiplication 解题报告
    BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
    codeforces 463C. Gargari and Bishops 解题报告
    codeforces 463B Caisa and Pylons 解题报告
    codeforces 463A Caisa and Sugar 解题报告
    CSS3新的字体尺寸单位rem
    CSS中文字体对照表
    引用外部CSS的link和import方式的分析与比较
    CSS样式表引用方式
    10个CSS简写/优化技巧
  • 原文地址:https://www.cnblogs.com/fatlyz/p/4293669.html
Copyright © 2011-2022 走看看