在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c++的资料从专业入门到高级教程」,点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!是不是最难不敢说(毕竟数据库、Office、大型游戏可能更难),但确实也已经很难了。至少对我这种主要搞web前端的人来说,真的有那种力不从心的感觉。视频编解码1,其实只是音视频开发的一个环节,尽管这个环节由于ffmpeg的存在,大部分人都不需要直接做了,但是音视频开发的其他环节,还有很多难点等着开发者。音视频开发体系的主链路,大致分为:采集一信号处理一编码一封包一传输一解包一解码一消费这么几个环节,各有各的难,(以下内容我也主要是看别人做过或者听别人讲过,我自己只做过零星工作,不能保证正确)首先,光一个传输稳定性问题,就足以淘汰大部分开发者。尽管大部分协议栈有开源实现,但是为了顺利调试,以及能用各种办法提高传输稳定性,你还是需要对各种协议都很熟悉,而且还得有经验。还记得ppstream和pptv不?当年就是靠传输稳定性甩开同行的。再比如信号处理问题,对于音频信号,比如降噪、回声消除、滤波等,对于图像信号,主要是些调优处理,比如噪声抑制,过曝问题等。这都是非常专业的领域,还是那个问题--尽管你能使用开源实现(但其实要追求好的效果,还是需要自研),但你还是需要很懂这个领域,才能胜任这部分开发工作。最后,也是最难,难到没有上限的部分,就是音视频的消费了最简单的消费就是播放了,调用系统接口就能实现,音视频同步、爆音等问题可能需要处理下。但是播放真正的复杂的地方不在这里,而在于如何实现一些高级处理,对于音频就是各种音响效果(还记得foobar2000不),对于视频情况,举两个例子第一个例子是反隔行,这个对于隔行扫描的视频是必备的,有硬件实现,也有软件实现。最简单的反隔行是直接扔掉一场,但效果好的反隔行,需要再运动估计的基础上,把物体边缘锯齿“拉回”到正常状态,再去内插补充背景的空缺像素,很复杂。第二个例子是高端电视机具备的各种动态补偿“功能(尽管电视用的是芯片而不是软件),比如MEMC运动补偿,以及亮度补偿,要实现的话都是蛮复杂的。这还只是播放,如果是音视频编辑软件,那就更加复杂几个数量级了--我猜,知乎应该没人有信心能牵头开发一个DaVinci或者一个FL Studio吧?
音视频开发是不是C++开发中最难的细分方向?
最新推荐文章于 2024-09-06 18:51:26 发布