当前位置: 首页 > news >正文

音视频播放的核心处理流程

目录

🧩 一、编码 / 解码 是什么?

🎞️ 二、解复用和解码的关系

🎨 三、YUV、PCM、H.264、AAC 是什么?

🧠 四、为什么解码输出 YUV / PCM?

💡 五、为什么渲染要转成 RGB 和 Qt 播放?

⏱️ 六、同步(Audio-Video Sync)

✅ 七、最简总结


🧩 一、编码 / 解码 是什么?

名称意思举例
编码(Encode)把原始数据压缩成体积小的格式原始视频 → H.264,原始音频 → AAC
解码(Decode)把压缩格式还原成原始数据H.264 → 原始图像(YUV),AAC → 原始声音(PCM)

👉 在播放器里,只做“解码”,因为你是播放别人编码好的视频
编码一般在“录制 / 推流 / 转码”时才用。


🎞️ 二、解复用和解码的关系

文件 → 解复用(Demux) → 解码(Decode) → 原始帧

步骤输入输出举例
解复用.mp4 文件AVPacket(压缩数据)一包 H.264 或 AAC
解码AVPacketAVFrame(原始帧)一帧 YUV 图像 或 PCM 音频

✅ 所以,AVPacket 只是中间的压缩包,最终要交给解码器转换成 AVFrame 才能播放。


🎨 三、YUV、PCM、H.264、AAC 是什么?

名称类型用途是否压缩举例
H.264视频压缩编码格式存储或传输视频✅ 有压缩.mp4、.flv 文件里的视频流
AAC音频压缩编码格式存储或传输音频✅ 有压缩.mp4 文件里的音频流
YUV原始视频帧格式显示前的图像❌ 无压缩解码后的视频数据
PCM原始音频格式播放前的声音❌ 无压缩解码后的音频数据

🧠 四、为什么解码输出 YUV / PCM?

因为:

  • H.264、AAC 是压缩格式,不能直接显示/播放;

  • 只有解码后得到的:

    • 视频帧 → YUV:每一帧像素数据;

    • 音频帧 → PCM:每个采样点的数据;

播放器用的就是这些原始数据。


💡 五、为什么渲染要转成 RGB 和 Qt 播放?

  • 屏幕显示的颜色模式是 RGB
    而视频解码出来是 YUV,所以要用 sws_scale()YUV → RGB

  • 音频输出设备(声卡)支持 PCM(采样信号)
    所以 QAudioOutput 直接播放 PCM

🎬 视频流程:H.264 →(解码)→ YUV →(颜色转换)→ RGB → 屏幕显示
🎧 音频流程:AAC →(解码)→ PCM → 声卡播放


⏱️ 六、同步(Audio-Video Sync)

对!你理解得对:

同步就是让解码得到的视频和音频对齐播放。

思路:

  • 每帧音频、视频都有一个显示时间戳(PTS);

  • 播放时比较音频PTS和视频PTS:

    • 如果视频太快 → 等一会再显示;

    • 如果视频太慢 → 丢掉几帧追上音频;

  • 一般以音频为主时钟(因为耳朵比眼睛更敏感)。


✅ 七、最简总结

流程输入输出数据格式
解复用MP4文件压缩包 AVPacketH.264 / AAC
解码AVPacket原始帧 AVFrameYUV / PCM
同步比对PTS保证音画一致时间对齐
渲染YUV→RGB / PCM→播放屏幕 / 声卡输出RGB / PCM

http://www.dtcms.com/a/564501.html

相关文章:

  • 基于EasyExcel实现Excel导出功能
  • 【SpringBoot】31 核心功能 - 单元测试 - JUnit5 单元测试中的断言机制——验证你的代码是否按预期执行了
  • kafka问题解决
  • Parasoft C/C++test如何在CCS3环境下进行F2812项目的单元测试
  • CCID工具,Jenkins、GitLab CICD、Arbess一文全方位对比分析
  • 公司网页设计的设计过程南昌网站排名优化报价
  • 如何查询网站空间寻甸马铃薯建设网站
  • Node.js 中的中间件机制与 Express 应用
  • 【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
  • 仿生机器鹰无人机技术解析
  • 2025无人机在电力交通中的应用实践
  • Qt实时绘制飞行轨迹/移动轨迹实时显示/带旋转角度/平滑移动/效果一级棒/地面站软件开发/无人机管理平台
  • 八股已死、场景当立(场景篇-负载均衡篇)
  • Go语言设计模式:备忘录模式详解
  • 基于YOLOv10的无人机智能巡检系统:电力线路悬挂物检测实战
  • 定制开发开源AI智能名片S2B2C商城小程序中的羊群效应应用研究
  • seo搜索引擎优化网站店铺位置怎么免费注册定位
  • 一个专门做恐怖片的网站做化工行业网站
  • 物联网 “神经” 之以太网:温湿度传感器的工业级 “高速干道”​
  • Biotin-PEG-OH,生物素-聚乙二醇-羟基,应用领域
  • 物联网“神经”之LoRa:温湿度传感器的广域“节能使者”
  • 舆情处置的自动化实践:基于Infoseek舆情系统的技术解析与落地指南
  • jcms内容管理系统百度seo怎么查排名
  • 亚马逊旺季广告攻略:解码产品周期,精准引爆销量
  • 【C#】HTTP中URL编码方式解析
  • 高速打印,安全稳定全兼顾 至像国产芯系列M3500DNWA应用测评
  • MacOS 安装Python 3.13【同时保留旧版本】
  • 八股训练营第 6 天 | HTTPS 和HTTP 有哪些区别?HTTPS的工作原理(HTTPS建立连接的过程)?TCP和UDP的区别?
  • 多阶段构建:打造最小化的 Spring Boot Docker 镜像
  • 在windows或者mac配置安装miniforge3