VLC不能播放264文件的可能原因
2016-03-13 本文已影响2364人
熊皮皮
1、问题:VLC可播放一些264文件,另一部分文件则播放不了,这是什么原因。这些文件用暴风影音都可播放,所以文件不存在错误。文件内容如下图所示。


2、分析:
- 由于暴风影音可播放,排除文件存在错误的怀疑。暴风影音做了很多很多额外处理,有强大的纠错能力,所以不能说明内容本身是标准的。
- 非标准H.264文件。使用Elecard Stream Analayzer查看,文件内容显示为avc/h.264。对比可知,图1多了SEI,SEI属于正常字段,用于描述附加信息。原则上不影响解码器,然而,并非每个解码器都拥有良好的兼容性,即使SEI值全为0。
上述问题的处理,将文件后缀改为h264,并且把SEI放在PPS后,VLC可正常播放。原因是,VLC源代码中明确规定解码时第一个NALU必须是SPS,故SEI放在前面会导致播放失败。