ffmepg + m3u8

m3u8文件下载

Posted by TF on March 16, 2020

背景

HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。具体格式相见:HLS科普1 HLS和M3U8简介

问题描述

  1. 如果网速OK,直接使用ffmpeg命令,但发生中断,不支持断点续传功能。(可能我未发现,如果发现可以共享,谢谢🙏)
    ffmpeg -i m3u8_url -c copy out.mp4
    
  2. 如果网速不佳,可以进行先下载ts文件,然后进行合并,下载ts文件时需要按照顺序。
    1. 不加密m3u8;
        #EXTM3U
        #EXT-X-VERSION:3
        #EXT-X-TARGETDURATION:14
        #EXTINF:11.480, 
        20170215T224129-1-0.ts
        #EXTINF:11.480, 
        20170215T224129-1-1.ts
        #EXTINF:10.480, 
        20170215T224129-1-2.ts
        #EXTINF:11.400, 
        20170215T224129-1-3.ts
        #EXTINF:11.120, 
      
    2. 加密m3u8
        #EXTM3U
        #EXT-X-VERSION:3
        #EXT-X-TARGETDURATION:2
        #EXT-X-MEDIA-SEQUENCE:0
        #EXT-X-KEY:METHOD=AES-128,URI="http://xxx"  #key密钥文件
        #EXTM3U
        #EXTINF:10.000000,
        mYexOkq6386000.ts
      

下载地址: github