1. 程式人生 > 實用技巧 >如何簡單粗暴的下載m3u8視訊並轉換為mp4格式

如何簡單粗暴的下載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> //每個切片的時長

轉換成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