2017-07-28 76 views
2

我有一個MP4解析器軟件,得到一個零碎的.mp4視頻,解析MOOV和片段標題並對它進行流式處理。我自己使用FFMPEGMP4Box/bento4生成了一個.mp4文件,但該軟件在處理它時遇到問題。MP4 moof片段標題

ffmpeg -i input.mp4 -g 25 -c:v libx264 -c:a copy out1.mp4 

mp4fragment out1.mp4 --fragment-duration 1000 --track 'video' output.mp4 

使用MP4 Explorer軟件,我在生成.mp4文件注意到,對於所有moof.traf.trun,樣本持續時間設置爲0 ,但在軌道片段標題框,它設置default_sample_duration到512而在另一個.mp4文件工作正常,沒有default_sample_duration字段,但每個單獨的樣本的大小爲512.看起來像這可能會導致問題。右圖顯示了工作mp4,左圖顯示了我生成的mp4。

這是更新版本FFMPEG(或MP4Boxbento4)的更新嗎?有什麼方法可以強制設置樣本中的樣本持續時間嗎?

My .mp4 file

The working .mp4 file

enter image description here

+0

這看起來像一個'mp4box'問題,因爲它正在創建'MOOF'框。分享您的mp4box命令。 – Mulvya

+0

您確定0x000100採樣持續時間存在標誌是否被設置? - 可能你的查看器可能默認爲零。 –

+0

@MarkusSchumann是的,這正是我想到的。可能沒有處理軟件「分段錯誤」的字段。你知道我可以檢查嗎? – Ariana

回答

1
  1. 解析TFHB
  2. 提取default_sample_duration
  3. 使用default_sample_duration代替缺席的持續時間從TRUN