流媒体随笔

一,流媒体术语

1.PCM、帧率、码率和分辨率
PCM:对声音进行采样、量化过程被称为脉冲编码调制(Pulse Code Modulation),简称PCM
帧率:每秒播放图片的张数
码率:视频数据在单位时间内使用的流量数据,压缩后的比特率
分辨率:单位英寸中包含的像素点数
三者的关系:如果视频清晰度和流畅度越好的话,就得码率越大,这样子才不会对图片压缩的太大,如果码率一定,帧率或分辨率越大,传输时就得对图片压缩比越大,可参考:https://www.bilibili.com/video/av32354974/?p=12&vd_source=86e814b789b2a3a8f5dcc8d29426a2e9
2.RGB和YUV
RGB:每8位或10位表示一种颜色
RGBA:其中a表示透明度
YUV:亮度(Y)和颜色(UV)为了兼容之前的黑白显示器
YUV帧结构:分为打包格式和平面格式
YUV采样:分为444 、422 和420
花屏:图形轮廓很乱,分辨率不对;有轮廓,yuv格式不对
绿屏:rgb和yuv很可能转换错误
编解码:注意位补齐
3.I、P、B帧
4.数字采样频率:大部分是44.1KHZ
音频帧:每次编码需要的采样单元数(MP3 1152个采样点作为一个编码单元)
有噪音可能是因为没有分清是交错模式和非交错模式
音频压缩的原理是去除冗余声音(人耳听不到的声音)
掩蔽效应分为频谱掩蔽效应和时域掩蔽效应
掩蔽阈值
在这里插入图片描述存储格式的对比
mp4本地存储比较多
flv网络传输比较多
DTS:解码时间戳
PTS:显示时间戳
6.rtp、sdp、rtcp和srtp区别
rtp:传送流媒体的数据,媒体面协议,不提供实时机制和包的质量保证机制
rtcp:统计媒体连接的统计信息,例如:传输字节数等,和RTP一起协作将多媒体数据打包和发送,为rtp提供包质量监测
srtp:对rtp的数据加密传输协议
sdp:与sip配合使用时处在sip的正文部分,主要负责媒体协商,例如协商RTP等传输协议所要用到的IP地址、端口号、媒体类型(视频、语音、文本等)等信息

二、ffmpeg相关知识

  1. avdevice_register_all 初始化输入输出设备
  2. avformat_network_init 此函数仅用于解决旧GnuTLS或OpenSSL库的线程安全问题
  3. av_dict_set 推流参数设置(preset:指定编码;max_delay:延迟约束;zerolatency:转码延迟;level:视频质量)

2.音视频基础知识

https://blog.csdn.net/yuan_ahui/article/details/126232480

主动丢帧

原因:
直播的第一要素就是实时,没有了实时,直播的价值也会荡然无存。所以保证实时性就需要确保录制端的数据要尽可能少的累积,要尽可能快地发送,但如果没有丢帧策略,那么在弱网环境下,就会因为待发送数据的不断堆积而产生累计延时,最终带来延时越来越大的情况。
另外,因为移动设备的内存有限,而视频数据对内存的占用较大,所以在推流时还要确保不会因为待发送数据堆积过多而带来内存不足,从而触发 crash 等严重问题。所以我们需要也一定要在推流端提供丢帧策略。
丢帧的方式可以有很多种,其中有些较为粗暴,会触发各类问题,比如花屏,爆音,音画不同步等问题,在反复尝试和验证了各类的丢帧策略后,最终认为要优先保证音频传输且不触发花屏、爆音、音画不同步问题的技术方案。
这一方案可以保证在带宽不足或上行速度不佳时,优先丢弃视频帧,保证音频的持续传输,在观看端至多出现画面跳帧的情况,但声音会是连续的片段,观众体验上不会认为是推流端断网,从而确保直播的持续进行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MSDN_lsx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值