2017-06-06 108 views
0

如果我使用以下ffmpeg命令爲加密的HLS流創建三個輸出,我如何能夠創建master.m3u8變體播放列表(帶有正確的BANDWIDTH)?如何爲我的加密子播放列表創建主m3u8播放列表(使用ffmpeg創建)?

./ffmpeg -re -i Test_1080p.mp4 \ 
    -c:a aac -b:a 128k -c:v libx264 -s 1920x1080 -g 48 -keyint_min 48 -sc_threshold 0 -bf 3 -b_strategy 2 -b:v 7800k -maxrate 8600k -bufsize 7800k -f hls -hls_time 6 -hls_list_size 0 -hls_key_info_file enc.keyinfo ./1080p/index.m3u8 \ 
    -c:a aac -b:a 128k -c:v libx264 -s 1280x720 -g 48 -keyint_min 48 -sc_threshold 0 -bf 3 -b_strategy 2 -b:v 4500k -maxrate 5000k -bufsize 4500k -f hls -hls_time 6 -hls_list_size 0 -hls_key_info_file enc.keyinfo ./720p/index.m3u8 \ 
    -c:a aac -b:a 64k -c:v libx264 -s 640x360 -g 48 -keyint_min 48 -sc_threshold 0 -bf 3 -b_strategy 2 -b:v 730k -maxrate 800k -bufsize 730k -f hls -hls_time 6 -hls_list_size 0 -hls_key_info_file enc.keyinfo ./360p/index.m3u8 

這是我發現的一些例子,但我認爲BANDWIDTH-Value對我的輸出文件不正確。我如何計算正確的帶寬?

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=150000,RESOLUTION=640x360 
http://example.com/360p/index.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000,RESOLUTION=1280x720 
http://example.com/720p/index.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=640000,RESOLUTION=1920x1080 
http://example.com/1080p/index.m3u8 

從蘋果variantplaylistcreator工具不會在這種情況下工作,因爲我需要的.plist文件,ffmpeg的不生成這些文件。

我想的ffmpeg不能創建生成的輸出文件master.m3u8播放列表..

+0

你知道了嗎?我需要創建一個主.plist文件,但我也不能使用variantplaylistcreator:/ –

回答

0

更新2018年1月

現在,您可以直接與FFmpeg的使用master_pl_namevar_stream_map創建主播放列表。請參閱documentation


FFmpeg不會創建主播放列表,但您可以像例子中那樣手動執行。

BANDWIDTH屬性表示變體的峯值比特率。對於像您這樣的多路複用流,值爲peak audio bitrate + peak video bitrate + mux overhead(包括任何加密填充)。如果你有獨立的視頻/音頻,你必須考慮到最高比特率的節目組合。

ffmpeg命令結束但僅當您有單個輸出時才顯示多路複用開銷。一旦你選擇編碼參數,你可以運行一些測試,並根據結果進行有根據的猜測。

有一點需要記住的是,根據Apple指南,測量值必須在VOD的聲明帶寬的10%以內,並且在1小時的實時內容中分別在25%以內。

相關問題