保存同一个H264视频流,第一个文件能播放,第二个播放不了。为什么

  早晨起来,检查了一下运行结果,一切正常。播放一下,崩溃了。啊?

  实际上是有的文件能播放,有的文件不能播放。

  代码有问题?这个问题能复现,查了一下崩溃地方,嗯?不是吾程序出错。

  老代码对不对?试了一下,也有崩溃的地方。

  后来终于发现,每次测试,开始保存的第一个文件能正常播放,之后的就不能播放。是吾播放器有问题?换了一个通用的播放器,也提示无法播放。这是怎么回事?

  咱对H264那是相当熟悉了。原因很简单,流开始的包没有保存,而这个包有关键信息。看了一下包大小,开头的两个包特别大。咱就保存这两个包,然后每个文件先加上这一段数据。果然,可以正常播放了。

  其实这个做法并不适当,还可以把包再分解,找出其中的有用部分(SPS/PPS)即可。

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/88074947