前言
今天大姚給大家分享一款.NET開源(MIT License)、免費、跨平臺的DASH/HLS/MSS下載工具,并且支持點播和直播(DASH/HLS)的內(nèi)容下載:N_m3u8DL-RE。
網(wǎng)絡流媒體傳輸協(xié)議介紹
DASH
DASH是一種基于HTTP的自適應流媒體網(wǎng)絡傳輸協(xié)議,它允許流媒體內(nèi)容以多個編碼和比特率的形式進行分發(fā),客戶端可以根據(jù)網(wǎng)絡狀況、設備能力和用戶偏好動態(tài)地選擇合適的流進行播放。
HLS
HLS是蘋果公司提出的一種基于HTTP的自適應流媒體傳輸協(xié)議,它通過將視頻文件分割成多個小的基于HTTP的文件(通常是TS格式),并創(chuàng)建一個播放列表(m3u8文件)來引用這些文件,從而實現(xiàn)流媒體內(nèi)容的傳輸。
MSS
MSS是微軟開發(fā)的一種用于流媒體內(nèi)容的自適應傳輸技術(shù),它通過將視頻和音頻數(shù)據(jù)分割成多個片段,并創(chuàng)建多個不同比特率的版本,然后使用HTTP將這些片段傳輸?shù)娇蛻舳?,以實現(xiàn)流暢的視頻播放。
工具源代碼
命令行參數(shù)
Description:
N_m3u8DL-RE (Beta version) 20230628
Usage:
N_m3u8DL-RE <input> [options]
Arguments:
<input> 鏈接或文件
Options:
--tmp-dir <tmp-dir> 設置臨時文件存儲目錄
--save-dir <save-dir> 設置輸出目錄
--save-name <save-name> 設置保存文件名
--base-url <base-url> 設置BaseURL
--thread-count <number> 設置下載線程數(shù) [default: 16]
--download-retry-count <number> 每個分片下載異常時的重試次數(shù) [default: 3]
--auto-select 自動選擇所有類型的最佳軌道 [default: False]
--skip-merge 跳過合并分片 [default: False]
--skip-download 跳過下載 [default: False]
--check-segments-count 檢測實際下載的分片數(shù)量和預期數(shù)量是否匹配 [default: True]
--binary-merge 二進制合并 [default: False]
--del-after-done 完成后刪除臨時文件 [default: True]
--no-date-info 混流時不寫入日期信息 [default: False]
--no-log 關閉日志文件輸出 [default: False]
--write-meta-json 解析后的信息是否輸出json文件 [default: True]
--append-url-params 將輸入Url的Params添加至分片, 對某些網(wǎng)站很有用, 例如 kakao.com [default: False]
-mt, --concurrent-download 并發(fā)下載已選擇的音頻、視頻和字幕 [default: False]
-H, --header <header> 為HTTP請求設置特定的請求頭, 例如:
-H "Cookie: mycookie" -H "User-Agent: iOS"
--sub-only 只選取字幕軌道 [default: False]
--sub-format <SRT|VTT> 字幕輸出類型 [default: SRT]
--auto-subtitle-fix 自動修正字幕 [default: True]
--ffmpeg-binary-path <PATH> ffmpeg可執(zhí)行程序全路徑, 例如 C:\Tools\ffmpeg.exe
--log-level <DEBUG|ERROR|INFO|OFF|WARN> 設置日志級別 [default: INFO]
--ui-language <en-US|zh-CN|zh-TW> 設置UI語言
--urlprocessor-args <urlprocessor-args> 此字符串將直接傳遞給URL Processor
--key <key> 設置解密密鑰, 程序調(diào)用mp4decrpyt/shaka-packager進行解密. 格式:
--key KID1:KEY1 --key KID2:KEY2
--key-text-file <key-text-file> 設置密鑰文件,程序?qū)奈募邪碖ID搜尋KEY以解密.(不建議使用特大文件)
--decryption-binary-path <PATH> MP4解密所用工具的全路徑, 例如 C:\Tools\mp4decrypt.exe
--use-shaka-packager 解密時使用shaka-packager替代mp4decrypt [default: False]
--mp4-real-time-decryption 實時解密MP4分片 [default: False]
-M, --mux-after-done <OPTIONS> 所有工作完成時嘗試混流分離的音視頻. 輸入 "--morehelp mux-after-done" 以查看詳細信息
--custom-hls-method <METHOD> 指定HLS加密方式 (AES_128|AES_128_ECB|CENC|CHACHA20|NONE|SAMPLE_AES|SAMPLE_AES_CTR|UNKNOWN)
--custom-hls-key <FILE|HEX|BASE64> 指定HLS解密KEY. 可以是文件, HEX或Base64
--custom-hls-iv <FILE|HEX|BASE64> 指定HLS解密IV. 可以是文件, HEX或Base64
--use-system-proxy 使用系統(tǒng)默認代理 [default: True]
--custom-proxy <URL> 設置請求代理, 如 http://127.0.0.1:8888
--custom-range <RANGE> 僅下載部分分片. 輸入 "--morehelp custom-range" 以查看詳細信息
--task-start-at <yyyyMMddHHmmss> 在此時間之前不會開始執(zhí)行任務
--live-perform-as-vod 以點播方式下載直播流 [default: False]
--live-real-time-merge 錄制直播時實時合并 [default: False]
--live-keep-segments 錄制直播并開啟實時合并時依然保留分片 [default: True]
--live-pipe-mux 錄制直播并開啟實時合并時通過管道+ffmpeg實時混流到TS文件 [default: False]
--live-fix-vtt-by-audio 通過讀取音頻文件的起始時間修正VTT字幕 [default: False]
--live-record-limit <HH:mm:ss> 錄制直播時的錄制時長限制
--live-wait-time <SEC> 手動設置直播列表刷新間隔
--mux-import <OPTIONS> 混流時引入外部媒體文件. 輸入 "--morehelp mux-import" 以查看詳細信息
-sv, --select-video <OPTIONS> 通過正則表達式選擇符合要求的視頻流. 輸入 "--morehelp select-video" 以查看詳細信息
-sa, --select-audio <OPTIONS> 通過正則表達式選擇符合要求的音頻流. 輸入 "--morehelp select-audio" 以查看詳細信息
-ss, --select-subtitle <OPTIONS> 通過正則表達式選擇符合要求的字幕流. 輸入 "--morehelp select-subtitle" 以查看詳細信息
-dv, --drop-video <OPTIONS> 通過正則表達式去除符合要求的視頻流.
-da, --drop-audio <OPTIONS> 通過正則表達式去除符合要求的音頻流.
-ds, --drop-subtitle <OPTIONS> 通過正則表達式去除符合要求的字幕流.
--morehelp <OPTION> 查看某個選項的詳細幫助信息
--version Show version information
-?, -h, --help Show help and usage information
工具運行截圖
項目源碼地址
更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。
轉(zhuǎn)自https://www.cnblogs.com/Can-daydayup/p/18326897
該文章在 2024/10/19 14:30:35 編輯過