百摩网
当前位置: 首页 生活百科

制作音主要流程(如何快速学习音开发)

时间:2023-05-30 作者: 小编 阅读量: 1 栏目名: 生活百科

通常,音视频架构师比较关注这些部分。而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。在海思嵌入式上,海思芯片提供了硬件的音视频采集、音视频渲染、视频编/解码、视频图像处理等核心功能,这就需要借助于海思提供的SDK进行开发了。

总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。

从技术上来讲,需要从如下两个大类知识点上去积累:

C/C通用开发知识

音视频开发的主要编程语言就是C和C。

这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。

可以重点关注如下几个方面:

计算机系统的底层工作原理

操作系统原理

程序的编译、链接和加载机制

C/C语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题

软件设计原则和设计模式

数据结构和算法

多线程并发编程原理

网络编程

跨平台

操作系统API

软件调试

2. 音视频领域专业知识

这块属于从事音视频行业的专业知识。

这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。

音视频的开发可以分为两大块,涉及的内容大致如下:

音视频客户端开发

客户端应用开发

音视频引擎开发

音视频引擎SDK

音视频引擎框架

音视频引擎功能模块

音/视频采集

音/视频渲染

音/视频数据处理

音/视频编/解码

录制

串流

音视频同步

流媒体服务器开发

通用服务器开发知识,需要关注如下几个点

高稳定性

高性能

高并发

高可用

流媒体服务器开发

SFU vs MCU

流媒体协议转换

弱网下的音视频传输协议

录制 & 转码

上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。

而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。

已经给大家准备好了安装环境和各种视频资料,资料放在自己的群里面:832218493(需要自取)

视频数据可以通过如下方式获得:

USB摄像头

专业的硬件视频采集卡(有软压卡和硬压卡之分)

网络摄像机(支持RTSP协议)

操作系统提供的屏幕录制API

读取音视频文件并解码

订阅流媒体服务器上的流

音频数据可以通过如下方式获得:

声卡

扬声器播放声音的回环采集(依赖操作系统的API)

读取音视频文件并解码

订阅流媒体服务器上的流

支持音频输入的网络摄像机(支持RTSP协议)

支持音频输入的视频采集卡

在手机上,操作系统的SDK会提供相关的音视频采集接口

音/视频渲染

视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL

可以通过开源库SDL来快速实现渲染模块

在Windows下使用DirectShow框架,操作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)

在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块

音/视频数据处理

这些模块基本是在编码前或解码后,对视频或音频的原始数据进行某种算法上的处理

视频处理主要包括分辨率转换、色彩空间转换、帧率转换、图像增强、多路视频拼接、添加字幕、添加LOGO图片等,这块对整体的性能影响比较大,往往需要使用SIMD指令进行汇编优化或使用GPU算法进行加速

音频处理主要包括回声消除、噪声抑制、自动增益、混音等,这块往往会涉及比较多的信号处理和数学知识,是音频中比较复杂的一块

音/视频编/解码

视频编/解码

要理解视频的基本编码原理,熟悉视频编码的关键参数和码流格式

目前使用比较多的是H.264,H.265开始逐步在使用,其他的视频编码也有很多,如AVS、VP8、VP9等

视频编码对音视频引擎的性能影响比较大,这块基本都是需要使用GPU加速的,目前的Intel集显对H.264和H.265支持还是比较好的,NVIDIA的独立显卡在编码上存在路数的限制;手机上一般都有对应的硬件加速模块;在性能较好的硬件上,可以考虑开源的X264

音频编/解码

要理解音频的基本编码原理,熟悉音频的关键参数和码流格式

目前使用比较多的是AAC,其他的音频编码也有很多,如G7.11、G.722、OPUS等

在PC上,一般音频的相关模块对性能的影响不明显,但在海思嵌入式系统上,音频模块对性能的影响就不能忽略,因为海思基本没有提供音频的硬件加速模块,而ARM CPU性能也有点弱

录制

需要理解FLV、MP4、TS等容器格式

对于特殊的录制方式要注意软件的处理方式,例如,加片头和片尾的录制功能,追加录制

MP4录制要注意moov box放在文件开始或结束对录制文件的写入和点播的影响

录制时音视频均匀混合的策略

串流

理解视频互动、直播和点播的工作原理

关键评价指标

延迟

首屏时间

同步

流畅性

画质/音质

理解下述的几种音视频传输协议

RTMP

HTTPFLV / WebsocketFLV

HLS

RTP & RTCP

RTSP

SIP

WebRTC

H.323

弱网下的音视频传输协议

理解TCP协议栈原理

可靠的UDP传输协议

KCP

SRT

QUIC

FEC丢包重传机制(如NACK)

音视频的开发并不是完全从零开始,而是有许多可以依赖的开源库,但要用好这些库,需要对上述的音视频专业知识有深刻的理解。

比较常见的音视频开源库,如下:

FFmpeg

可以直接使用ffmpeg的命令行实现转码、切片等常见功能

可以基于FFmpeg API封装开发自己的音视频模块

live555

比较完善的RTSP库

x264

比较常用的H.264编码库

fdkaac

比较常用的AAC编解码库

librtmp

支持rtmp协议,产品化时需要自己进一步完善

pjsip

支持sip协议

webrtc

google开源的webrtc库,有比较好的音/视频引擎,对网络状态的实时评估可以借鉴,回声消除模块也是比较有名的

SDL

比较有名的音视频渲染库

SRS

国内比较知名的RTMP流媒体服务器,支持HLS、HTTP FLV,4.0版本开始支持WebRTC

OWT

Intel开源的WebRTC套件,支持了WebRTC客户端SDK和分布式的WebRTC MCU服务器

OpenCV

著名的视频算法库

另外,视频的编码和解码可以基于Intel Media SDK和NVIDIA的NVENC来实现。

在海思嵌入式上,海思芯片(如Hi3531D等)提供了硬件的音视频采集、音视频渲染、视频编/解码、视频图像处理等核心功能,这就需要借助于海思提供的SDK进行开发了。

顺便给大家推荐一个学习音视频的学习大纲 需要自取:

    推荐阅读
  • 理赔款进了前任车主口袋

    如果没有通知保险公司,因转让导致危险显著增加并因此引发保险事故,保险公司不承担保险赔偿责任。同时,若车主拒绝将赔偿支付给第三方,第三方可起诉车主,这将获得法院支持。同时,只有交强险在有效期内的车辆才能办理过户手续。而若原车主不转让商业险,则商业险保单权益依然在原车主身上。另据业内人士提示称,当本地二手车卖往异地时,交强险和商业险都可退保。

  • 和平精英ios怎么输入特殊符号(和平精英ios空白名字怎么打)

    很多玩家都想要一个空白名字,但是不知道怎么输入才能成为空白的名字,今天小编将空白名字的输入技巧分享给大家,各位可以根据小编在下方分享的攻略进行输入,这样就会有一个空白名字了,今天小编就来说说关于和平精英ios怎么输入特殊符号?和平精英ios怎么输入特殊符号[海峡网]和平精英i怎么将游戏名字弄成空白?

  • 沙琪玛的做法简单方便(如何制作沙琪玛)

    跟着小编一起来看一看吧!沙琪玛的做法简单方便盆里放一碗的面粉加入2个鸡蛋、再加适量的水和成面团,再醒发15分钟左右。然后再擀成面饼,再切成长条备用。锅中烧油五成热下面条炸,小火炸至飘起捞出控油备用。把自己喜欢吃的干果先放入容器里摊平。另起锅放入一勺的水,2勺的白糖熬至香油色。然后下入炸好的沙琪玛反拌均匀,再倒入容器里压平放凉。放凉后倒出来切块就可以吃了。

  • 糖尿病经常喝酸奶有什么好处(糖尿病人怎么喝酸奶)

    酸奶和牛奶一直以来都是日常生活中会饮用的饮品。也是被人们称赞的健康饮品。主要就是因为商家在制作酸奶的过程当中,为了满足人们的需求,或者是想要更好的口感以及更好的销量。就会在酸奶中加入一些甜味剂,有的会加入白砂糖等物质。只不过需要糖尿病人群在制作酸奶的同时,少加一些甜味剂,这样喝起来会更有影响一些。但如果在已经饱腹的情况下饮用的话,也是在添加热量摄入,反而会对增加肥胖有好处。

  • 别轻易弄丢那个适合你的人(余生别丟下我好吗)

    别轻易弄丢那个适合你的人?想好了再来接近我,我结过婚生过孩子,,下面我们就来聊聊关于别轻易弄丢那个适合你的人?接下来我们就一起去了解一下吧!别轻易弄丢那个适合你的人想好了再来接近我,我结过婚生过孩子,没有存款还有负债,我怕我以后提钱的时候你说我现实,也请你别把我捂热了又丢下我!

  • 京东物流业务好做么(京东物流接外单)

    昨日,京东宣布,位于上海的大型物流中心“亚洲一号”一期将在“双11”前夕投入使用。在今年“双11”前夕开放亚洲一号,京东大打服务牌的意图尽显。长达104天的史上最长快递高峰期,将成为亚洲一号面世后的第一场重大考验。上半年上市时,京东已有1.8万名快递员。有业界人士担心,高速地发展可能打破京东对于物流软实力的发展惯性。业界人士指出,快递员的素养是影响卖家、消费者是否接受亚洲一号为其服务的重要因素。

  • 高二学生叛逆期严重怎么教育(高二学生叛逆期严重教育的方法)

    高二学生叛逆期严重怎么教育缓解孩子压力。高中孩子身上的压力也是蛮大的,也会导致孩子变的暴躁易怒,压力过大甚至会压垮孩子,导致孩子叛逆厌学的发生。高中时期是孩子思想形成的重要时期,孩子也在不断的摸索尝试,孩子犯错这是难以避免的,我们年少时也没少犯错误。家长大可不必为此大动肝火,要允许孩子犯错,要敢于放手让孩子自己去体验生活,让孩子主动吃点亏。

  • 迅雷怎么下载种子(迅雷怎么下载种子文件)

    我们一起去了解并探讨一下这个问题吧!迅雷怎么下载种子首先,我们需要进入迅雷,记住只有在主页才有这个按钮。这里是我们创建的任务的地方,我们点击“加号”。首先进入的时候手动添加,大家可以手动找到自己种子文件存在的目录。自动扫描出我们的种子文件之后,大家就可以点击下载了。

  • 液晶电视都是什么面板的(各大电视厂商都用啥面板)

    不过这几年三星为了和国内电视厂商抗衡,也推出了不少网络机型,也就是只在网络上销售的廉价电视。早期索尼使用过三星的VA面板、LG的IPS面板,近年在高端电视上,索尼全部使用VA面板,只有中低端才会用上IPS面板。今年面板价格狂降,所以各大厂商也都会根据自己的成本考量来选择供应商。另外海信在中低端电视方面,VA面板不少是华星光电的产品,而在IPS面板方面,则使用京东方的ADS面板。

  • 为什么学猫叫猫真的会过来(爱猫的你了解吗)

    在这种情况下,它与正常情况明显不同。这种哭叫声是仅在未进行避孕或绝育的猫中才能听到的哭泣方式。当猫唱歌有多种迹象表明,雄性猫发情时会变得攻击性,失去镇静或进行标记,其中之一是独特的呼唤。认为它对发情的母猫的哭泣有反应,并且其特征是声音很大,听起来像是人类婴儿的哭泣。当小猫哭泣在发情雌猫中,其发声方式的变化是发情的迹象之一。这是小猫的一种常见的哭泣方法,通常称为“沉默的喵”。