流媒体服务新手入门教程03--音视频基础

本文是流媒体服务新手入门教程的第三部分,主要讲解音视频基础知识,包括视频帧的帧间压缩和帧内压缩,如I帧、P帧和B帧的概念,以及YUV色彩空间和压缩比例。此外,还介绍了音频的采样率和压缩,以及编解码、封包、码率、DTS和PTS等核心概念。
摘要由CSDN通过智能技术生成

对于简单的接入摄像头等硬件或者推送视频流、录制文件,那么直接下载m7s官网编译好的二进制文件即可。

如果要做二次开发,那么就需要了一些基础的音视频基础,及m7s代码了,我们先了解一些音视频基础。

视频基础

视频帧

对于视频来说,我们可以把其想象为一幅一幅图片组成的,当把这些图片连续快速播放时,由于人眼的视觉暂留,只要播放的速度大于1秒24幅图片,那么我们看起来就是连续的。其中这个每秒播放多少张图片就称为帧率 ,一副图片就称为帧。假如就这么把图片放在一起,我们来算一下现在流行的15秒短视频大概有多大。
我们现在的手机摄像头都是千万像素,拍摄出来的照片基本都超过1M,这里就按1M计算,帧率按照24,则15秒的短视频有 24*1*15 = 360M
是不是吓一跳,实际上视频并不简单的把图片组合起来,而是按照一定的规范压缩过。要不然我们刷几个短视频,流量蹭蹭蹭的往下掉,谁也扛不住啊!

帧间压缩

我们比较一下相邻的两幅图片,会发现第二幅图片相对第一幅来说变动很小。如果只记录这个变化的地方,那么存储不就降下来了吗。
于是这些技术专家们提出了三种帧:
I 帧(Intra-coded picture)表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)
P帧 (Predictive-coded Picture)前向预测编码图像帧,P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。
B帧 (Bidirectionally predicted picture)双向预测编码图像帧,B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累。

帧内压缩

看到这里,你可能会想到,除了对帧间压缩,我们是否还可以对帧内进行压缩呢?答案是肯定的。
我们常见的图片是利用红、绿、蓝三原色来表示每一个像素点,即RGB模式。但实际上摄像头,流媒体里用的更多的是YUV。
什么是YUV?
Y表示明亮度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值