iT邦幫忙

0

關於 m3u8 檔案利用 ffmpeg 轉成 mp4 影片檔

小弟近期拿到一個 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.有時影片超過十秒,畫面是循環重複那十秒

以下是檔案內容 與 錯誤畫面 ▼

https://ithelp.ithome.com.tw/upload/images/20210515/20125607Z1zD2lQgCC.png

https://ithelp.ithome.com.tw/upload/images/20210515/20125607o6xrql4tau.png

這邊還有幾個問題請各位大神解答

問題1:
#EXT-X-KEY:METHOD=AES-128,URI="key.m3u8",IV=0x00000000000000000000000000000001:
這行中 key.m3u8 是密鑰,那我該怎麼確認解密成功?怎麼看到密鑰解密的文本

問題2:
同上題內容,IV=0x00000000000000000000000000000001:
這是什麼?對密鑰有什麼作用?

問題3:我找到的檔案只有一個 ts檔,這樣是合理的嗎?還是我有漏掉的檔案?

跪求各位大神幫助!!!

/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif

haward79 iT邦新手 5 級 ‧ 2021-05-16 13:36:10 檢舉
1. 建議你把檔案傳上來或貼上來,截圖其實沒有很方便使用。
2. 請問你的 ts 檔是哪來的?怎麼會只有 1 個?
3. 看 m3u8 裡面的內容,應該是網路上抓下來的吧!建議給原網址,這樣有助於分析每個 ts 檔。
ffmpeg -i "https://.................../x.m3u8" "c:/test/video.mp4"

1 個回答

0
nwm310
iT邦新手 5 級 ‧ 2021-05-18 13:35:16
最佳解答

去下載最新版的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:

感謝大神解答 問題已解決

我要發表回答

立即登入回答