一、前言:
大家好,今天的主题是:音视频实战开发!
内容点:
1、当前市场的嵌入式音视频技术点和需求
2、如何去学习音视频相关的东西
3、培养自己独立解决问题的习惯和能力!
二、当前市场的实际需求技术点分析和总结和学习方法
在当前做视频监控或者行车记录仪等相关产品,只要涉及到视频有关的东西,那么就离不开音视频技术了!
而在我们嵌入式产品中,当前市场上比较成熟的芯片平台有:
海思(老大哥了!)
富翰
瑞芯微
君正
安霸
联咏
这里当然还一些其他芯片平台来做这块的产品,我就没有列举出来了哈,而且以上这些平台是市场上非常成熟的平台方案,我们学习的话,我个人推荐海思或者瑞芯微的来作为入门学习,其中海思的文档手册是最为详细的,而瑞芯微的,对于视觉处理这块会比较好!
其实在平时的实际开发当中,包括编码、解码、视频处理、以及内存池的分配等相关流程的话,这块海思的mpp手册是非常详细的,只是这里会扩展到一些其他的技术点,也就是我们在去找这块的岗位,所需要掌握的必备技能点。
为了根据贴近实际,我给大家展示几个招聘网站上的要求(其实这块,我以前写过,不过现在随着工作的积累,有了不同的理解),我把他们分为几个方向:
协议的掌握,那么必须对网络这块要有一个熟悉程度
算法方面,这块的话,可能更多的是利用第三方的算法去搞的,这块其实业务层学到的东西不是很多!
一些特殊的实际工作问题解决,比如说:视频卡顿、花屏,音视频不同步、还有如果产品有对讲功能,那么会涉及到回音消除或者降噪等等问题。
先看几个实际案例需求,我再把它们展开汇总说:
市场实际要求一市场实际要求二市场实际要求三市场实际要求四
我们可以从这上面可以看出来,然后再结合我刚才说的那个大方向来看:
你会发现,在这个网络协议方向,是很多公司会要求的,因为毕竟搞的应用层的业务开发(我这里的话,没把驱动包括进去!),基础的必须要掌握的协议:
rtsp
rtmp
这俩个用的比较多,其他的协议,有时候是根据具体的平台协议来对接,比如公司里面会用第三方的平台来做视频传输流或者下发对应的指令要求,这个就是要用到特殊的协议来做了!
这里关键的核心是网络这块的知识点,如果你掌握了其中上面的一种协议的实现,那么其他是相通的,只是细节不一样!
同时只要涉及到推流和拉流这块的话,大家非常有必要去学习一下:
ffmpeg
这块是必须要掌握的,然后你才能根据实际公司项目去积累技术经验!
我这里相对来说,对于一些想要入门的朋友,大概你只要掌握这些就行,你一下子去学太多的东西,会给你带来很多的负担,因为上面介绍的都是实际市场要你掌握的技能,你不要搞一些比较偏门的或者太复杂的东西,特别是刚开始的时候,这样会打击你学习的信心,特别是没有人带你或者和同行交流!其实这里面还有很多要学习的,比如:容器格式。
等你先把这些简单的掌握好,在去扩展一些必须要掌握的东西,这样层层渐次,会让你学习更加有动力和方向。如果一开始就给你很多的学习方向和知识图谱的话,我个人感觉是不太好的,可以先有一个侧重点去学习,如果什么都给你准备好了话,这样其实学习起来也很累的,因为音视频里面的东西难,知识点也多!
下面是我回答一个朋友的问题,大家可以参考一下:
问题:
回答:
总之,这块总结起来,先抓市场重点方向学习,再去以点扩面的方式去学习!
三、培养自己的独立学习能力和习惯:
其实这块,都是通病,不管是在学习音视频这块还是其他方面;很多人,一有报错,就截图找别人问,这样是非常不好的习惯,首先原本报错提示就很明显,比如在哪个源文件、哪个函数里面,都提示非常清楚,当然包括一些动态链接的错误、或者路径的错误,这些编译器提示的非常清楚,所以你只要认真看一下或者思考一下,是可以解决的,这是一个工程师必备的能力!
特别在公司里面,千万不要养成这种习惯,不然浪费别人的时间!
有些错误你通过思考和查资料,实在解决不了,再去向别人请教,这会对自己有很大的帮助!
这块,就不啰嗦了....
-END-