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

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

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

通常,音视频架构师比较关注这些部分。而音视频引擎底层功能模块和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进行开发了。

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

    推荐阅读
  • cad图纸中各种标注(CAD图纸标注样式设置步骤)

    1-3分钟学习CAD小技巧,责任、担当、使命-华云旭教育CAD教程!丨标注样式丨标注样式是CAD图形中最重要的图形元素之一,和文字样式相同,在CAD中,使用标注样式可以控制标注的格式和外观,建立强制执行的绘图标准,并有利于对标注格式及用途进行修改。Setup2,弹出标注样式管理器界面。华云旭教育CAD教程原创文章,转载请注明出处,更多优质内容请关注我们。华云旭教育CAD教程:立一等品格,求一等学识,成一等事业!

  • 品种不一样的龟能和平共处吗(想了解龟的天敌都是些什么吗)

    不过,即使这样还是老鼠的危害最大,可以咬伤或者直接咬死陆龟。拿现在龟界顶端的“巴神”来说吧,在原生地也是有着不少限制其数量的天敌在。包括凶猛的鳄龟类,也会受到水獭等天敌围捕。导致称霸一方啊。所以物种的超大范围迁徙,没有很好的自然调整,就会令当地的生物链被破坏,某个或者某些物种成为强势物种。巴神就是这样,北美泛滥成灾的鲤鱼也是例子。这也是大自然对于龟数量的控制,保持一个平衡。

  • 发动机拉缸有何现象(柴油发动机拉缸有何现象)

    发动机拉缸有何现象这很容易判断。当汽车出现这种情况时,可能是发动机拉缸。是活塞与气缸相互运动造成的严重损失,大部分损失原因是运动处润滑油膜局部损坏造成的。冬季出发前应采取热身措施。发动机拉缸有什么声音可能会有咔哒声,但是拉缸只能通过一些现象来判断,而不仅仅是通过发动机的声音。解决办法是取出活塞连杆组检查清洗,更换机油和机油滤芯,清洗油底壳。在这种情况下,必须完全更换缸套、活塞和活塞环。

  • 半小时跳绳2000个慢吗(半小时跳绳2000个是不是慢)

    下面内容希望能帮助到你,我们来一起看看吧!一般的人一分钟可以跳100个左右,照此计算半个小时也可以到达3000个了。所以半小时跳绳2000个虽然不算慢但也比较普通,大部分人锻炼一下都可以做到。

  • 中俄瑷珲条约和中俄北京条约(北京条约)

    北京条约《北京条约》,包括《中英北京条约》、《中法北京条约》、《中俄北京条约》,是1860年大清于第二次英法联军后在北京分别与英国、法国、俄国各自签订的战败条约咸丰皇帝委任钦差大臣恭亲王奕䜣作为谈判及签约代表。

  • 王牌校草别惹我第二部叫什么(大家都在盼续集)

    下面内容希望能帮助到你,我们来一起看看吧!王牌校草别惹我第二部叫什么《王牌校草别惹我》目前没有第二部。很多人表示真的很意外现在这个结局,本来想着小悠可以和澈一直在一起的,但是………第二部的女主真的换了,澈对小悠的感情全是真的,不会和别人结婚的,第二部应该是小悠和澈在一起很安静的时光。

  • 如何杀死螨虫(如何杀死螨虫)

    下面希望有你要的答案,我们一起来看看吧!如何杀死螨虫注意经常使房间保持通风,因为60%以下的空气湿度可使螨虫和霉菌难以生存。螨虫在卧室里的主要藏身之地是床垫,因此时刻保持床垫的清洁是很重要的。再一个办法是采用不透螨虫的床垫罩,即给床垫加一层防护螨虫的外壳。尽可能减少在卧室内放置聚集灰尘的物品,如沉重的窗帘、织物桌布、开式书架、带有花土的盆栽植物等。

  • 信阳市春季赏杜鹃花地点推荐 信阳杜鹃花在哪里

    又名映山红、山石榴。杜鹃花一般春季开花,每簇花2-6朵,花冠漏斗形,有红、淡红、杏红、雪青、白色等,花色繁茂艳丽。生于海拔500-1200米的山地疏灌丛或松林下,为中国中南及西南典型的酸性土指示植物。该物种全株供药用:有行气活血、补虚,治疗内伤咳嗽,肾虚耳聋,月经不调,风湿等疾病。中国江西、安徽、贵州以杜鹃花为省花,定为市花的城市多达七八个。1985年5月杜鹃花被评为中国十大名花之六。

  • 被逼相亲的聊天记录(聊了没几句我就被拉黑了)

    被逼相亲的聊天记录昨天一大早,有不少网友发现,自己辛辛苦苦积累了好几年的QQ名片点赞数被清空,纷纷在微博等社交平台上发帖投诉,引发网友热议,并且迅速爬上了热搜榜。但是网友似乎并不买账,继续展开“血与泪”的控诉。在大部分扩列QQ群里,超过80%的成员都是00后,成为QQ群的主力用户。这样的操作其实起源于饭圈,为了不直呼其名引起粉丝之间的矛盾,所以提到爱豆一般会以拼音简写来表示。

  • 狮子座的幸运色是什么颜色(简单介绍一下)

    狮子座的幸运色是什么颜色最幸运的颜色:苹果绿、橘色。狮子座的人天生具有领袖气息,行事作风高调、追求耀眼出众是他们的生活目标。正因狮子的行为举止总是抢眼有气势,所以要避免趾高气昂、充满跋扈的金色,以免造成其它人的刻板印象,认为狮子座的人眼高手低,看不起人。而且金色会造成狮子座的食欲变好,减少活动,很容易造成身体负担。