發表文章

目前顯示的是有「streaming」標籤的文章

使用bento4產生加密的HLS串流(AES-128和SAMPLE-AES)

使用下面的指令產生HLS時, 會遭遇mp42hls的bug, m3u8檔案內的segment檔名是template=sement-%d.ts的問題, 建議修正如下: https://github.com/Mirochiu/Bento4/commit/003c18a6f61546375e321f821df416a6d1d2cb68 產生無加密HLS HLS的規格可參考 RFC 8216 mp42hls \   --segment-filename-template 'seg-%03d.ts' \   --index-filename clear.m3u8 \   --iframe-index-filename 'clear-i.m3u8' \   fragmented.mp4 以下加密使用KEY和IV HLS_KEY=5a867de28e7a029c2e995687b8992693 HLS_IV=c35263c8381d0b6b80f93360a5ca2ee6 因為mp42hls產生的m3u8會指定key為key.bin, 需要產生key.bin #可看到m3u8內的key uri為key.bin #EXT-X-KEY:METHOD=AES-128,URI="key.bin" printf ${HLS_KEY} | xxd -r -p > key.bin 產生AES-128加密HLS HLS的AES-128加密方法可參考 RFC 8216 不指定IV值 mp42hls \   --segment-filename-template 'seg_aes128-%03d.ts' \   --index-filename enc_aes128.m3u8 \   --iframe-index-filename 'enc_aes128-i.m3u8' \   --encryption-key ${HLS_KEY} \   --encryption-mode AES-128 \   fragmented.mp4 ffplay播放測試okay, Ubuntu內建播放器不okay ./ffplay -allo...