音视频高频知识点

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

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

相关推荐
悟纤9 小时前
Seedance 2.0 API 已上线 | 支持「人像视频生成」|支持100并发 | 满血版 [灵龙AI API]
人工智能·音视频·seedance 2.0
这儿有一堆花9 小时前
深入解析 Video.js:现代 Web 视频播放的工程实践
前端·javascript·音视频
人工智能研究所12 小时前
Claude + HyperFrames:用 HTML 方式制作视频,AI 时代一切皆可 HTML?
人工智能·html·音视频·ai 视频·hyperframes·claude-
zzh92014 小时前
基于51单片机的流水灯Proteus仿真按键切换 上到下下到上 2个灯(可定做)(免费代码+视频讲解)
51单片机·proteus·音视频
Shang1809893572615 小时前
T31ZX 君正/INGENIC智能视频处理器T31ZX可提供软硬件资料T31Z采用先进的低功耗设计
嵌入式硬件·fpga开发·音视频·t31zx智能视频处理器
音视频牛哥15 小时前
纯血鸿蒙(HarmonyOS NEXT)下,如何实现低延迟RTSP、RTMP播放器音视频解码?
华为·音视频·harmonyos·鸿蒙rtmp播放器·鸿蒙rtsp播放器·harmonyos rtsp·鸿蒙next播放器
@hhr16 小时前
使用java对接火山方舟doubao-seedance-1.5-pro 模型进行视频生成
java·python·音视频
轻口味17 小时前
HarmonyOS 6 轻相机应用开发2:贴纸效果实现
音视频·harmonyos·鸿蒙·播放器
2601_9495936518 小时前
Flutter OpenHarmony 三方库 video_player 视频播放器适配详解
flutter·音视频
王者鳜錸18 小时前
企业解决方案三-讯飞音频文件转文字+豆包智能体实现音频信息提炼
音视频