2012-08-10 112 views
6

我正在嘗試從Smooth Streaming服務器重建視頻文件。 Smooth Streaming提供fMP4文件,它們是常規的MP4文件,既不包含FTYP也不包含MOOV原子。從零碎MP4「mdat」原子重建MP4文件?

存儲在這些原子中的所有信息都放入一個Manifest XML文件中,這是我的。

有沒有一種方法以編程方式重建原始MP4文件,或者通過:

  • 直接從位於MDAT (和圖片格式的相關信息)H264/AAC內容重建一個新的文件;或
  • 重建FTYP和MOOV原子

否則,有一個工具,它可以合併fMP4?

回答

3

是的。這完全有可能。

你可以用FFmpeg來做到這一點。研究libavformat中的mov.c [MP4 demuxer]。

您將需要使用fMP4中「缺失」的所有數據在內存中完成MP4。換句話說,當你需要一個fMP4 [幾乎所有]中不存在的原子時,你將不得不輸入硬編碼的所有信息(這些信息大部分來自清單)。

這並不容易......但肯定有可能。我自己完成了。不幸的是,代碼不是我的財產。

祝你好運! ;-)

更新: PIFF格式規範將非常有用(http://go.microsoft.com/?linkid=9682897),所以人們可以瞭解什麼是已經在fMP4和什麼不是!

0

如果有與片段化的mp4文件相關的ism和ismc文件,重建mp4文件很簡單。

要求您應該瞭解每個trak的媒體類型,編解碼器類型,編解碼器特定數據和時間範圍,以重建moov和ftyp原子。

這些信息可以從ism和ismc文件中檢索。

您可以從ism文件中檢索每個音軌的媒體類型。 您可以從ismc文件中檢索編解碼器類型,編解碼器特定的數據和每個音軌的時間比例。

簡而言之,ism/ismc文件是服務器和客戶端的元數據,因此您可以重建mp4文件的元數據(ftyp,moov atom)。

+0

我有ism,ismc和ismv(碎片化的mp4文件)。您是對的,我們可以從ismc文件中獲取每個音軌的編解碼器類型,編解碼器特定數據和時間比例。另外,可以通過在URL中添加/ Manifest來訪問此信息,如http://localhost/pp/Test.ism/Manifest。這將返回清單數據。 現在你能告訴我任何方式來創建這個MP4文件嗎?我的意思是,是否有任何圖書館或任何代碼片段可以做到這一點。 自從最近1個月起,我嘗試執行相同的任務,並且沒有任何進展。請給我一個主意。 – waghekapil 2014-01-09 14:35:13