一个实际音视频开发问题!

前言:

大家好,今天给大家分享的内容是关于平时在做音频编解码会遇到的一些问题,比如说:

  • 解码播放的时候,播不出来

  • 解码播放的时候,画面有条纹

  • 编码的时候,修改分辨率大小,没有反应

这三个问题是最近和同行交流的时候,大家遇到的一些问题,有些朋友一开始,没有思路去解决这种问题!

其实大家在做这块的时候,注意把握整个音视频的整体流程,比如说,编码、音视频处理、解码,核心就是这三个点,出现了问题,就往这三个大的方向去考虑,到底哪块出了问题,然后再去细节处理!,这样的话,我们至少有一个解决问题的思路,对于这种显示播放遇到的问题!

同时,对于官方的mpp源码要去多研究,结合官方给的手册!ok,我这里就简单说这些,下面看具体的问题,希望大家以后遇到类似的问题,有自己的思路去解决问题.

一、解码播放失败:

问题点:

76f6bf7f148629b9cf6134b705237cce.png

首先这里给大家播放这个h264视频文件失败的现象:

e531bf7c25abbfbb1fec07c5e3ef5f6c.png

通过ffplay播放,会有提示没有pps,所以解码播放失败了,如果你用vlc播放的话,啥都没有,这种时候,你就蒙圈了,不知道啥情况,这里也可以用Elecard_streamEye这个软件去分析h264的码流结构,由于这个文件有问题,Elecard_streamEye也是不支持打开的!

所以问题点就出现你的编码端,这个时候,去修改编码端,就可以解决问题了!

二、解码播放出现条纹:

问题点:

11bc7d00f55eef6d0602fe80d76554b3.png f54748568575f5c8e7381849ff65405d.png

经过分析h264的码流结构,也没有问题:

01b3461278a1cfae2cd837db0d00bece.png c0e29107b8785c594a8a502e4834285f.png

当时我给这位朋友提供的思路,是stride(跨距:这个的意思是图像存储时内存中每行像素所占用的空间)的问题,这里大家可以去学习一下这个跨距,在我们平时各种芯片平台写编码代码的时候,要特别注意这个内存对齐问题!后面这个问题就是stride的问题:

ccc91413855415fbdb5c305a8932db7d.png

三、编码的时候,修改分辨率大小,没有反应:

问题点:

db56ebc847c0e338bbe3fa5dafde13e2.png cdc22b018185a85e9444e7fd53cfa952.png

这个问题就很明显了,后面问题解决了,问题点出现在:

f479e03d1b1abf751c571939af2b9757.png

四、总结:

大家发现没,我举得三个问题,本质都是编码端出得问题,所以,官方发的mpp代码流程写法,值得花时间研究和借鉴一下。

也欢迎大家后期有编解码问题,可以多多相互探讨交流,后期我也会分享更多关于这块得实际问题给大家!

最后:

今天的分享就到这里,更多交流,可以加作者微信进行深度交流:

d3ac755468f0e11186fe4d21e67a8f47.png

猜你喜欢

转载自blog.csdn.net/Dada_ping/article/details/130738024