如何簡單粗暴的下載m3u8視頻並轉換為mp4格式


m3u8文件介紹

M3U(Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator)這種文件格式是音視頻文件的列表文件,是純文本文件。你下載下來打開它,播放軟件並不是播放它,而是根據它的記錄找到網絡地址進行在線播放。m3u8就是以utf-8編碼的m3u文件

 

打開m3u8文件可以看到像下面這樣

 1 #EXTM3U
 2 #EXT-X-VERSION:3 3 #EXT-X-MEDIA-SEQUENCE:11785 4 #EXT-X-TARGETDURATION:11 5 #EXTINF:10.560, 6 cctv1_2md/1602814775_5190881.ts 7 #EXTINF:10.560, 8 cctv1_2md/1602814786_5190882.ts 9 #EXTINF:10.880, 10 cctv1_2md/1602814797_5190883.ts 11 #EXTINF:10.880, 12 cctv1_2md/1602814808_5190884.ts 13 #EXTINF:10.560, 14 cctv1_2md/1602814818_5190885.ts

 

每個字段含義如下:

1 #EXTM3U //必需,表示一個擴展的m3u文件
2 #EXT-X-VERSION:3 //hls的協議版本號,暗示媒體流的兼容性
3 #EXT-X-MEDIA-SEQUENCE:xx //首個分段的sequence number
4 #EXT-X-ALLOW-CACHE:NO //是否緩存
5 #EXT-X-TARGETDURATION:5 //每個視頻分段最大的時長(單位秒)
6 #EXT-X-DISCONTINUITY //表示換編碼
7 #EXTINF:<duration> //每個切片的時長

 2021.06.10補充

 1 #EXT-X-STREAM-INF:RESOLUTION=1920x1080,FRAME-RATE=30,CODECS="avc1.640028,mp4a.40.2" 
 2 https://xxx.com/index.m3u8
 3 格式
 4 #EXT-X-STREAM-INF:<attribute-list>
 5  <URI>
 6 
 7 說明
 8 #EXT-X-STREAM-INF:代表不同的播放流,
 9 后面是屬性列表,如上面的FRAME-RATE=30
10 下面一行是鏈接地址

 

轉換成mp4的方法

需要借助ffmpeg(在最初的時候,我是自已下載好所有的分片文件,然后再用ffmpeg去合並,后面才發現ffmpeg還提供下載功能,這確實省心不少)

ffmpeg官網只提供源碼,不提供編譯好的版本。但有三方提供的編譯好的二進制文件。

下載鏈接:

https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z 

https://myfreetime.cn/software/ffmpeg-4.3.1-2020-10-01-full_build.zip

 

下載完成后解壓,執行命令行程序ffmpeg.exe,運行以下命令

1 ffmpeg.exe -i http://xxx.com/test.m3u8 D:\output.mp4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM