音视频高频知识点

本篇文章就来介绍一下在音视频学习中 要有哪些要重点掌握的知识点 本章以问题的形式来提出

1.为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?

1)空间冗余:图像相邻像素之间有较强的相关性

2)时间冗余:视频序列的相邻图像之间内容相似

3)编码冗余:不同像素值出现的概率不同

4)视觉冗余:人的视觉系统对某些细节不敏感

5)知识冗余:规律性的结构可由先验知识和背景知识得到

2.怎么做到直播秒开优化?

DNS 解析慢为了有效降低 DNS 解析对首开的影响,我们可以提前完成播放域名->IP 地址的解析, 并缓存起 来, 播放的时候,直接传入带 IP 地址的播放地址,从而省去了 DNS 解析的耗时。 如果要支持用 IP 地址播放, 是需 要修改底层 ffffmpeg 源码的。
播放策略很多侧重点播的播放器,为了减少卡顿,会有一些缓冲策略,当缓冲足够多的数据之后 ,再送入解码播放。 而为了加快首开效果,需要对播放的缓冲策略做一些调整,如果第一帧还没有渲染出来的情况下, 不要做任何缓冲,直接送入解码器解码播放,这样就可以保证没有任何因为「主动」缓冲带来的首开延时。
播放参数设置 所有基于 ffffmpeg 的播放器,都会遇到avformat_fifind_stream_info这个函数耗时比较久, 从而增大了首开时间,该函数主要作用是通过读取一定字节的码流数据, 来分析码流的基本信息,如编码信息、时长、码率、帧率等等,它由两个参数来控制其读取的数据量大小和时长, 一个是 probesize,一个是analyzeduration。 减少 probesize 和 analyzeduration 可以有效地减少avformat_fifind_stream_info的函数耗时, 从而加快首开,但是需要注意的是,设置地太小可能会导致读取的数据量不足,从而无法解析出码流信息,导致播放失败, 或者出现只有音频没有视频,只有视频没有音频的问题。

直播秒开优化代码实例:

cpp 复制代码
ffmpeg -i input.mp4 -c:v libx264 -preset veryfast -g 25 -crf 28 -pix_fmt yuv420p -c:a aac -b:a 160k -f flv rtmp://server/app/stream

好了 本篇文章就讲到这里 在这里我想向大家推荐一篇课程:
https://xxetb.xetslk.com/s/2PjJ3T

相关推荐
Panesle2 小时前
基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读
人工智能·机器学习·音视频
红米饭配南瓜汤2 小时前
WebRTC中的几个Channel
网络协议·音视频·webrtc·媒体
EasyDSS3 小时前
嵌入式EasyRTC音视频实时通话SDK在工业制造领域的智能巡检/AR协作等应用
人工智能·音视频
邪恶的贝利亚10 小时前
FFplay 音视频同步机制解析:以音频为基准的时间校准与动态帧调整策略
音视频
路溪非溪10 小时前
音频/AI/BLE/WIFI/玩具/商业等方向的论坛网站总结
音视频
flex888812 小时前
FramePack - 开源 AI 视频生成工具
人工智能·开源·音视频
EasyDSS15 小时前
WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
人工智能·音视频
Eric.Lee202116 小时前
python opencv 将不同shape尺寸的图片制作video视频
python·opencv·音视频
灰色人生qwer1 天前
使用WebSocket实现跨多个服务器传输音频及实时语音识别
websocket·音视频·实时传输
小鱼仙官1 天前
Ubuntu 编译SRS和ZLMediaKit用于视频推拉流
音视频