我正在從事Android設備上的實時設備到服務器流式傳輸。我能夠在服務器上以字節發送數據,但是當我在服務器上錄製期間播放該文件時VLC說MOOV原子未找到。在很多解決方法之後,我發現最後生成的mp4文件的原子會生成MOOV。但是我必須在服務器上播放該文件,而錄製則意味着直播。我通過SPYDROID和SIPDROID的源代碼,但他們都不工作。我試圖使用FFMPEG在服務器端添加移動原子,但沒有得到任何成功。任何人都有任何想法,我怎麼能實現這一點。提前Thanx。如何在mp4視頻文件中添加MOOV原子
回答
運行qt_faststart將moov原子移動到流的開始位置。
qt-faststart in.mp4 out.mp4
你有問題。 'moov'框是一種內容表。如果不是所有的內容都在那裏,你就無法獲得完整的目錄。哎喲!
如果你想堅持使用MP4,並且如果你自己編寫文件,你可以將文件編寫爲所謂的分段MP4文件。碎片化的MP4文件包含多個視頻獨立的小部分 - 每個都有自己的目錄。這將使您能夠在完整錄製完成之前播放該文件。
如果你不需要堅持使用MP4,一個選項是將原始h264流寫入服務器。那麼你沒有那種內容表。 VLC可以播放原始的h264流。
您好sebsatian,我不能夠在視頻錄製時獲得Android的行數據,請問我可以如何實現這一點。 – Ravinder 2012-07-19 07:13:28
我知道MP4,但不是特別的Android。也許你應該創建一個新的問題。 – 2012-07-19 12:49:46
這樣做的另一種方法可能是隻記錄一兩秒鐘,然後在服務器上重新連接?! – 2012-07-20 09:58:03
使用MP4Box將MOOV原子移動到文件開始處,並將交錯存儲到數據流中。
MP4Box test.mp4 test.mp4
它不適合我。返回: 錯誤 - 指定了2個輸入名稱,請檢查使用情況 MP4Box版本0.5.0-rev4065 – 2013-10-12 19:05:45
添加到您的這個gradle這個LIB:編譯 'net.ypresto.qtfaststartjava:qtfaststart:0.1.0' 然後
File input = new File(path + "/input.mp4"); // Your input file
File output = new File(path + "/output.mp4"); // Your output file
try{
if(!output.exists()) // if there is no output file we'll create one
output.createNewFile();
}
}catch (IOException e){
Log.e("TAG", e.toString());
}
try{
QtFastStart.fastStart(input, output); // Adds moov to your input
// Now your output file is ready to stream!
}catch (QtFastStart.MalformedFileException m){
Log.e("QT", m.toString());
}catch (QtFastStart.UnsupportedFileException q){
Log.e("QT", q.toString());
}catch (IOException i){
Log.e("QT", i.toString());
}
這裏說的一切都
有可能使用FFMpeg將moov原子移動到視頻文件的開頭。
ffmpeg -i input_video_file.mp4 -vcodec copy -acodec copy -movflags +faststart output_video_file.mp4
- 1. 如何爲mp4視頻添加水印?
- 2. 如何區分.mp4音頻文件和.mp4視頻文件在ASP.Net中C#
- 3. 把MOOV原子放在MP4文件的開頭是否有缺點?
- 4. MP4視頻文件播放視頻
- 5. 是否有可能僞造(mp4)moov原子?
- 6. 如何將視頻文件(mp4)添加到我的android應用程序中?
- 7. 的Moov原子搬遷
- 8. 如何在jwplayer中的php文件中播放mp4視頻
- 9. 如何在Konva階段添加視頻(.mp4,.mov)?
- 10. 如何在JFrame中播放mp4視頻文件?
- 11. 如何在Firefox中播放MP4視頻
- 12. 在iPhone中添加視頻文件
- 13. 如何添加標籤到MP4文件?
- 14. 從原始資源文件夾播放.MP4視頻
- 15. 如何在離子中播放視頻.avi或mp4
- 16. 播放MP4以外的視頻文件
- 17. FFmpeg解碼.mp4視頻文件
- 18. PHP返回一個MP4視頻文件
- 19. 寬屏轉換爲MP4視頻文件,
- 20. 如何在mp4中編輯或添加「旋轉」的視頻元數據?
- 21. 如何在html上嵌入mp4視頻?
- 22. 將3gp moov原子從一個文件複製到另一個
- 23. .MOD轉換視頻文件的MP4,但保留原始文件的日期
- 24. 如何在視頻中添加字幕
- 25. 如何在視頻中添加綁定
- 26. 的Moov原子記錄的數據
- 27. Rails 3 Webrick的問題和爲iPhone/iPad(mp4 m4v)視頻文件加載視頻
- 28. 從零碎MP4「mdat」原子重建MP4文件?
- 29. ffmpeg,替換mp4視頻文件中的部分音頻
- 30. 如何將視頻添加到iPhone SDK上的音頻文件
烏拉圭回合rply喜d33pika..thnx,我想給在服務器上的視頻數據同時記錄,但MOOV原子錄製完成,以便這就是爲什麼我認爲QT-的fastStart不會有所幫助這裏後產生。 – Ravinder 2012-07-19 07:12:35
你解決了你的問題@Ravinder?我現在正在嘗試完全一樣,並沒有看到可行的解決方案。如果你知道,請在這裏發表評論。 – 2014-11-16 18:33:36
如何在android中使用qt-faststart?有人可以發佈示例代碼嗎? – 2016-06-23 04:49:14