介紹如何在 Linux 中使用 ffmpeg
指令下載 m3u
或 m3u8
串流影片清單,儲存為 mp4 檔案。
m3u
是一種用來儲存多媒體播放清單的檔案格式,而 m3u8
就是 UTF-8 編碼版本的 m3u
,許多網路上的線上影片都會以 m3u
的格式來播放。
使用 ffmpeg
下載 m3u8
串流影片
取得 m3u8
播放清單的 URL 網址之後,即可使用以下的 ffmpeg
指令將串流影片下載為 mp4 影片檔案:
# m3u8 視訊串流檔列表網址 M3U8_URL="https://video.dious.cc/20200725/w0YyXoEY/index.m3u8" # 輸出 MP4 檔案 MP4_OUTPUT="video.mp4" # 下載 m3u8 視訊串流至 MP4 影片檔 ffmpeg -i "${M3U8_URL}" -bsf:a aac_adtstoasc -vcodec copy -c copy "${MP4_OUTPUT}"
使用 m3u8-download
下載 m3u8
串流影片
除了自己執行 ffmpeg
指令之外,也可以利用 m3u8-download
這個指令稿來下載 m3u8
串流影片。
首先從 GitHub 下載 m3u8-download
指令稿,並測試一下:
# 下載 m3u8-download git clone https://github.com/williamchanrico/m3u8-download.git # 測試 m3u8-download cd m3u8-download/ ./m3u8-download
_____________________ / hello, who's there? \ \ william said hi... / --------------------- \ ,__, \ (..)____ (__) )\ ||--|| * Download video from m3u8 address using ffmpeg usage: m3u8-download M3U8_ADDRESS {OUTPUT_FILENAME}
執行 m3u8-download
指令並指定 m3u8
視訊串流檔列表網址以及輸出的 mp4 影片檔案,即可以下載串流影片:
# m3u8 視訊串流檔列表網址 M3U8_URL="https://video.dious.cc/20200725/w0YyXoEY/index.m3u8" # 輸出 MP4 檔案 MP4_OUTPUT="video.mp4" # 使用 m3u8-download 下載 m3u8 視訊串流至 MP4 影片檔 ./m3u8-download "${M3U8_URL}" "${MP4_OUTPUT}"