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

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

时间: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进行开发了。

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

    推荐阅读
  • 猪仔喂水正确方法(原来小猪喝水那么有讲究)

    猪仔喂水正确方法保育猪的生长过程中,需要充足的饮水,如果饮水不足,不但会导致仔猪的采食量下降,还会影响其对饲料的消化和吸收,直接降低仔猪的生长速度,甚至降低机体的免疫力,导致疾病的发生。此外,为了缓解仔猪断乳后的应激反应,通常在饮水中添加维生素、葡萄糖、钠盐和钾盐等电解质或抗生素药物,以增强仔猪的抵抗力,从而减少疾病的感染率。

  • 紫色蒲公英的传说(紫色蒲公英的传说介绍)

    紫色蒲公英的传说传说,谁能找到紫色蒲公英,就能拥有完美的爱情。蒲公英,一个自由的身体,一个飘荡的灵魂,人们总将漂泊不定的事,比喻成蒲公英飘洒的飞花,一直不停地寻找归宿,寻找完美的栖息地。而这世上飘忽不定的又何止蒲公英,童年时握不住的纸飞机,少年时操场边的篮球架,成年后无数未读的短消息,还有曾经在你身边的人,早已没了踪迹,只剩下空荡荡的名字。

  • 丰田威驰新车直降4万(威驰限时优惠9000元)

    凤岗美鑫丰田威驰现车销售,颜色可选。现购部分车型在凤岗美鑫丰田4S店内优惠多多,价格给力,多重购车好礼等着您!到店即有专业的销售顾问为您详细讲述车辆的各项参数及购车政策。凤岗美鑫丰田4S店期待您的光临!

  • 黑领椋鸟怕什么(粉红椋鸟一天能吃180只蝗虫)

    塔城是新疆伊犁州塔城地区下辖县级市,位于新疆维吾尔自治区西北部、准噶尔盆地西北边缘的塔城盆地。监测人员从石头缝里捡出来3个粉红椋鸟孵化后的鸟蛋空壳。受访者供图根据塔城地区蝗鼠测报防治站的观察,一对粉红椋鸟一般产卵2只到8只不等。据介绍,粉红椋鸟食量惊人,每天捕食蝗虫120-180只,繁殖周期内能吃掉2亩地左右的蝗虫,雌雄共同捕食养育雏鸟,堪称生物灭蝗的“铁甲军”。蝗虫被牛马惊扰飞起,粉红椋鸟负责捕食。

  • 相貌堂堂造句(怎么用相貌堂堂造句)

    再看客官身材魁梧,相貌堂堂,两耳之垂超过凡人,真是洪福齐天,不久必定黄袍加身,成为当今之君无疑!他长得相貌堂堂,仪表不凡,颇有风度。这位相貌堂堂的男子虽然衣冠楚楚地坐在那里,但是看见冰清玉洁的她,早已心猿意马。这位得奖青年果然长得相貌堂堂,在同伴中鹤立鸡群,十分引人注目。他身体魁伟,相貌堂堂,走起路来高视阔步气度不凡。这位男士正当春秋鼎盛之时,服饰辉煌,相貌堂堂。

  • 高兴的句子说说心情短语(形容高兴的句子)

    那颗心乐得快要盛不下蜜糖般的喜悦。哥哥欣喜若狂,握着这张浸透了他的汗水的通知书,舒畅地、尽情地笑着。他心中,像放落一副千斤担子般的轻快。听到这个好消息,姐妹俩手拉手跳着,笑着,花裙子迎风摆动,活像一对活泼、愉快的花蝴蝶。米袋沉甸甸地压在身上,但是,心里却感到无比轻松。杨燕撑起雨伞,提起一个挎包,放在肩上;想到马上要去上大学,像驾起了云头似的,畅快地大摇大摆走出家门。

  • 英雄联盟哪个英雄最厉害最好上分(英雄联盟五大最高伤害英雄盘点)

    高达27764的中单伤害傲视群雄,上中双位置称霸,美服第一伤害,非死歌莫属!死歌的大招是联盟中少有的既能锁定目标,还能无视距离,还有超高伤害,并且针对敌方全体的,顶级AOE技能,如果死后释放还能保证不被打断。卢登可以提升大头的伤害。配合炮台打出巨额伤害。远古巫灵在美服的伤害榜单中,第七位归属远古巫灵泽拉斯。命中率高的泽拉斯和命中率低的泽拉斯是完全两个英雄,属于上限下限差距最大的英雄之一。

  • 犹念天涯未归客瘴云深处守孤城(独在异乡为异客)

    假如其间有所隐瞒,自己不报,或不报全,即所谓“匿不自占,占不悉”,就要受到严厉惩罚。为此商鞅还立法,“生者著,死者削”,即出生登报户籍,死时削籍,如果匿户,按秦律处罚极重。此外,秦律还规定,假如赘婿为父,或有市籍即商人,亦当特别注记。另外,家中田数、租赋徭役完成情况、有无违法犯罪记录等也一并记录。

  • 耂怎么读(耂的意思)

    耂,lǎo,意思是年纪大的人又引申指时间长,长久、陈旧、总是、历事多而熟练,下面我们就来说一说关于耂怎么读?我们一起去了解并探讨一下这个问题吧!耂怎么读耂,lǎo,意思是年纪大的人。耂,从毛从人,同老,用于偏旁部首。老,象形字,一个驼背人、一缕稀疏的头发垂下来、手持拐杖而行的样子。

  • 比萨斜塔不倒之谜(1178年第一次发现倾斜)

    1178年第一次发现倾斜比萨斜塔是意大利比萨城大教堂的独立式钟楼比萨斜塔,因位于意大利托斯卡纳省比萨城北面的奇迹广场而得名,建于1173年8月,建筑工程曾两次长时间间断,历经约二百年才完工外墙面均为乳白色大理石砌成,为罗马式。