2011-03-15 77 views
6

我正在嘗試播放MP4流。該流是從我的Android手機發送的。問題是,只有在電話完成錄製進程時纔會寫入播放mp4所需的moov原子。因此,目前我只能在錄製完成後播放流式數據。 我的想法是自己編寫ftyp和moov原子,以便在手機正在錄製時播放流數據。 我試圖使用另一個視頻文件中的moov原子,但這不起作用。我也讀過,如果只給出mdat原子,通常不可能建立一個moov原子。 但在我的情況下,我知道記錄條件,如幀速率等。是否有可能僞造(mp4)moov原子?

所以我的問題是,如果我知道記錄參數,是否有可能爲傳入流生成有效/可用的moov原子?

回答

2

這似乎是不可能的,因爲播放器需要特殊的表格和偏移來定位每個數據樣本,因此還沒有完成mp4文件。您可以僞造FTYP,MOOV和其他原子,但是如果沒有完成文件,則無法生成所有表格。更好的策略是生成很多簡短的mp4文件並將它們逐個文件發送出去......

+0

但有停止記錄器,保存文件,然後重新啓動錄像機,以便生成很多短文件(Android上)的開銷。事實上,每次發生這種情況時,都會導致其中一兩個視頻被跳過。 – 2013-10-15 15:00:31

4

這是可能的。我在4年前完成了對原始iPhone的「直播」。只需使用恆定大小的幀填充STSZ和STCO原子,然後用零填充每個幀。是的,大小將是巨大的,但你會得到真正的實時流:-)

相關問題