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