【发布时间】:2015-07-26 03:38:30
【问题描述】:
H.264 定义应通过在两个零字节后添加一个“3”字节来转义两个零字节的序列(“模拟预防”)。
此转义规则是否也适用于 mp4 文件格式?
问题后面是ffmpeg的调试结果。我尝试打开以下文件:
https://www.dropbox.com/s/vrdy8z96pohh7ah/live_video_fragment_1.mp4?dl=0
VLC 播放它,但 ffmpeg 不播放。 ffmpeg显示很多错误,第一个是(带日志级别调试):
AVC: Consumed only 41 bytes instead of 796
对 ffmpeg 的调试表明它试图解析 H.264 解码器中的 moof 框并在 https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264.c#L312 上失败
在解析traf 框(表示其大小)之前的 4 个字节时,它会将“0 0 3”字节理解为模拟防止字节,因此所有解析都会出现故障。
那么,这是 ffmpeg 的错误行为吗(不应将其理解为防止仿真)?或者文件包含错误并且字节应该被转义?
【问题讨论】:
标签: video ffmpeg mp4 h.264 libavcodec