如何修正影片上傳 Azure Media Service 的播放時間
將影片檔 *.vob 上傳至 Windows Azure Media Service,經編碼後有時會發現影片的長度變短,影片還沒播完便提前結束。
造成此問題的可能是當時錄製影片過程中,有按下暫停後再錄製等動作,導致在 Windows Azure Media Service 編碼時誤判影片的結束點,這個問題目前已向 Windows Azure forums 提出。
尚未獲得正確解決方法前,筆者實驗發現,透過轉檔工具 (Avidemux、格式工廠) 先將原始 *.vob 轉碼輸出,可修正此問題。
以 Avidemux 轉檔
下載 Avidemux 2.6.6,按下列操作步驟
2. 選擇輸出影音的設定,Video 選 Mpeg4 AVC (x264),Audio 選擇 AAC (Faac) 或 AAC (lav)
3. 儲存,輸入附檔名為 *.mp4
編碼完成後,須檢查:
1. 暫停的時間點前後影像是否連續?
2.影片的時間長度是否正確?
查看檔案的延伸資訊, Video > Length 是否是正確的。
以格式工廠轉檔
下載 格式工廠 3.2.0,按下列操作步驟
先建立輸出配置
針對日後會經常用到設定,另外儲存一個輸出配置會比較方便。
設定 [影片流]中的各項設定,這部份視原始檔案做調整。
設定完成後點擊 [另存新檔為]。
進行編碼
2. 按下[新增檔案],選取要編碼的原始 VOB 檔案,可同時選取多個檔案。
3. 點擊[確定] 返回主畫面。
如上圖中可以看到影片時間長度,若是正確的,是不用先轉檔即可直接上傳至 Windows Azure Media Service
寫在後面
最佳組合
Avidemux、格式工廠均可校正影片時間長度。但轉檔後並不能保證可使影片從 Windows Azure Media Service 以串流播放。
兩種工具可輸出多種檔案格式,而每種檔案還有進階設定。在這麼多檔案組合進行實驗:本機轉檔 > 上傳Windows Azure > 線上編碼串流 > Silverlight 測試。每種組合實驗耗時約半小時以上,某些情況會會延伸其他問題:
1. 檔案上傳 Azure Media Service 後,無法編碼,例如:AVI, WMV
2. 輸出的影片有跳格現象,在有暫停的時間點,音訊正常但影片會中斷常達0.5~1分鐘,使用格式工廠會有此現象。
歷經多日實驗後找到的可行的結果是:
以 Avidemux 在本地端編碼一次(如上步驟),再上傳至 Windows Azure Media Service,如此一來播放時間是正確的,且沒有影像跳格的問題。