使用 FFmpeg 下載 HLS 影片
⚠️ 請注意,本範例僅供學習參考,請遵守各平台影片使用規範與相關法令,產生之行為與後果將由使用者自行負責
下載檔案
使用 FFmpeg 下載檔案,並轉換成 MP4 格式,如果需要驗證 Cookie,可使用 headers 選項
| 1 | ffmpeg -headers "Cookie: [Cookie替換]" -i "[m3u8網址]" -c copy -bsf:a aac_adtstoasc [輸出影片].mp4 | 
參數解析
| 參數 | 說明 | 
|---|---|
| -headers "Cookie: [Cookie替換]" | 傳送 HTTP 標頭,通常用於需要驗證或存取受限的 m3u8 資源 | 
| -i "[m3u8網址]" | 指定輸入來源為 m3u8 串流清單的網址 | 
| -bsf:a aac_adtstoasc | 對音訊流(AAC)應用位元流過濾器(bitstream filter),將 ADTS 格式轉換為適合 MP4 的格式 (通常 m3u8 使用 ADTS 格式) | 
使用 FFmpeg 產生 HLS 影片
產生影片
| 1 | ffmpeg -i [輸入影片].mp4 \ | 
| 參數 | 說明 | 
|---|---|
| -c:v libx264 | 設定視頻編解碼器為 libx264(H.264 編解碼器),適用於 HLS 串流 | 
| -c:a aac | 設定音頻編解碼器為 aac,適用於 HLS 串流 | 
| -hls_time 10 | 設定每個 HLS 分段的時長(單位:秒),此處為 10 秒,表示將影片分割成每 10 秒一個片段 | 
| -hls_list_size 0 | 設定播放清單的大小, 0表示清單包含所有的段,不會移除任何片段,若設為正整數,則只保留最新的N段 | 
| -hls_segment_filename "segment_%03d.ts" | 設定每個 HLS 分段檔案的命名規則, %03d會生成從001開始遞增的檔名 | 
| -f hls | 指定輸出格式為 HLS | 
| playlist.m3u8 | 指定輸出的 M3U8 播放清單檔案名稱,此檔案將包含 HLS 影片分段的播放清單 |