如何簡單粗暴的下載m3u8視訊並轉換為mp4格式
阿新 • • 發佈:2020-10-16
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> //每個切片的時長
轉換成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