2017-07-28 33 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