小弟近期拿到一個 m3u8 的檔案,想把它轉成可以播放的 mp4檔
目前:
m3u8檔 * 1
ts檔 * 1
key.m3u8 * 1 檔案
使用指令:ffmpeg -i 01.m3u8 -vcodec copy -acodec copy -absf aac_adtstoasc test.mp4
試了一週還是出現問題
1.影片只有十秒
2.畫面跟聲音對不上,聲音有時候斷斷續續
3.有時影片超過十秒,畫面是循環重複那十秒
以下是檔案內容 與 錯誤畫面 ▼
這邊還有幾個問題請各位大神解答
問題1:
#EXT-X-KEY:METHOD=AES-128,URI="key.m3u8",IV=0x00000000000000000000000000000001:
這行中 key.m3u8 是密鑰,那我該怎麼確認解密成功?怎麼看到密鑰解密的文本
問題2:
同上題內容,IV=0x00000000000000000000000000000001:
這是什麼?對密鑰有什麼作用?
問題3:我找到的檔案只有一個 ts檔,這樣是合理的嗎?還是我有漏掉的檔案?
跪求各位大神幫助!!!
去下載最新版的ffmpeg
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z
問題就解決了
答案1:
影片可以播放,就是解密成功
答案2:
初始向量
英語:initialization vector,縮寫為IV
AES-128 區塊加密:每個區塊大小為 16 byte
如果區塊內容一樣,加密之後得到的密文也會一樣
為了使密文都不一樣,先把資料打亂,然後再加密
資料打亂的方式:把前一個區塊的加密結果 和 目前這個區塊 做 XOR運算
因為第一個區塊前面沒有區塊,所以它需要IV來做資料打亂的動作
IV的資料長度等於區塊大小 16 byte
答案3:
合理
注意看 m3u8裡的 #EXT-X-BYTERANGE: