音视频架构的三部分之推流过程(一)
【摘要】 原始音视频数据采集,包括了音频采集和视频采集。
音频采集
采集过程:
设置采集设备的一些参数:采样率、采样数;将音频信号采集为PCM编码的原始数据;再把原始数据编码压缩成MP3或AC3等封装格式的数据;最后,将封装好的数据通过流媒体协议发给服务器。
常见的音频封装格式:MP3、AAC、OGG、AMR、APE、WMA等。
面临挑战: 音频采集面临去噪、回声消除、...
原始音视频数据采集,包括了音频采集和视频采集。
音频采集
采集过程:
- 设置采集设备的一些参数:采样率、采样数;
- 将音频信号采集为PCM编码的原始数据;
- 再把原始数据编码压缩成MP3或AC3等封装格式的数据;
- 最后,将封装好的数据通过流媒体协议发给服务器。
常见的音频封装格式:MP3、AAC、OGG、AMR、APE、WMA等。
面临挑战:
音频采集面临去噪、回声消除、静音检测等问题。
重点考虑:
- 要重点考虑采样率的设置,因为不同声音效果的采样率有一定的阈值。
- 位宽:即一次能传递的数据宽度,位宽越大,一次能处理的数据就越多,音频常用8或16位。
- 声道数:一般采用单声道或双声音。
视频采集
采集过程:
- 利用手机摄像头采集,得到的是用NV21(YUV格式的一种)格式存储的原始数据;
- 将得到的原始数据编码压缩成H.264等格式的数据;
- 然后把编码好的数据进行封装,封装的格式有FLV等;
- 最后,将封装好的数据通过流媒体协议发给服务器。
重点考虑:
- 传输通道:即数据在传输时所利用的媒介,常见的有TCP和UDP。
- 分辨率:它代表图像中存储的信息量,图像分辨率=垂直像素x水平像素
- 采样率:指分秒从连续的信号中提取并组成离散信号的采样个数,如720像素视频。不同采样个数对应的分辨率也是不同的。
- fps:一般为15~20fps就OK了。
音视频数据采集后的处理
渲染处理:主要从相机 中采集来的数据进行二次处理,如美颜。常用的美颜工具有商汤、FaceUnity,开源的有GPUImage。
美颜的基本概念:通过一定算法对原始图像数据进行二次处理并强化图像效果。
最后介绍一下推流协议
常用的有RTMP、WebRTC和一些基于UDP的私有协议。
RTMP是主流的流媒体协议,在传输层是使用了TCP协议。RTMPT、RTMPS、RTMPE都是RTMP的变种。
RTMP的优点:对CDN内容分发网络友好,而且CDN对RTMP支持是最好。协议也相对简单。
RTMP的缺点:在弱网时丢包比较严重,它不支持浏览器推送。
WebRTC支持web浏览器进行实时的音视频数据推送,主要用于视频会议和连麦中。
WebRTC的优点:在弱网时优化较大,表现优于RTMP。它可以实现点对点通信,通信时延双方都较低。
WebRTC的缺点:传统CDN没有提供类似的服务。
谢谢阅读。
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/95386580
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)