早晨起来,检查了一下运行结果,一切正常。播放一下,崩溃了。啊?
实际上是有的文件能播放,有的文件不能播放。
代码有问题?这个问题能复现,查了一下崩溃地方,嗯?不是吾程序出错。
老代码对不对?试了一下,也有崩溃的地方。
后来终于发现,每次测试,开始保存的第一个文件能正常播放,之后的就不能播放。是吾播放器有问题?换了一个通用的播放器,也提示无法播放。这是怎么回事?
咱对H264那是相当熟悉了。原因很简单,流开始的包没有保存,而这个包有关键信息。看了一下包大小,开头的两个包特别大。咱就保存这两个包,然后每个文件先加上这一段数据。果然,可以正常播放了。
其实这个做法并不适当,还可以把包再分解,找出其中的有用部分(SPS/PPS)即可。