对Doom先生的回答表示赞赏,并且我想稍微改进一下。我单独提供这个答案,而不是在他的回复下面留言,因为我的评级还不够高以发表评论,但我发现可能对某些人有用。
我遇到了与OP类似的问题,当我使用VLC录制后,出现了奇怪的情况。视频的宣传长度(播放器显示的长度)为40分钟,而数据则包含了大约5小时的播放时间。通过视频大小过大而与其播放时间不符这一事实,我知道了这一点。如果在VLC播放器中打开视频并拖动到时间轴的末尾,它会继续播放超过所述的播放时间。因此,问题出在损坏的视频元数据上。
Mr. Doom的答案有一个问题,我已经将持续时间更改为FF FF FF FF,但我只能获得大约1小时11分钟的播放时间。从那时起,我需要减少时间刻度(在持续时间之前的4个十六进制数字)才能获得更长的播放时间。然而,在HxD中进行更改并没有产生一致的结果。长话短说,我发现问题出在我搞乱了字节序。编辑器默认是小端序,而这个需要大端序模式。在更改后,我能够设置正确的Int64数字,并在播放时间轴上前后缩放。问题已解决,现在我能够在时间线上看到完整的回放。
此外,Doom先生提供的链接文档有些错误。他谈论的是mvhd原子,而链接指向的是mdhd。修正后的文档链接在这里。