音视频开发-ffmpeg介绍-系列二

目录

一、FFmpeg核心结构体

二、解码流程

三、FFmpeg解码实现

四、FFmpeg编码实现

五、FFmpeg转码实现


一、FFmpeg核心结构体

AVFormatContext:解封装功能的结构体,包含文件名、音视频流、时长、比特率等信息;

AVCodecContext:编解码器上下文,编码和解码时必须用到的结构体,包含编解码器类型、视频宽高、音频通道数和采样率等信息;

AVCodec:存储编解码器信息的结构体;

AVStream:存储音频或视频流信息的结构体;

AVPacket:存储音频或视频编码数据;

AVFrame:存储音频或视频解码数据(原始数据)

二、解码流程

三、FFmpeg解码实现

解码实现的是将压缩域的视频数据解码为像素域的 YUV 数据。实现的过程,可以大致用如下图所示

从图中可以看出,大致可以分为下面三个步骤:

  1. 首先要有待解码的压缩域的视频。
  2. 其次根据压缩域的压缩格式获得解码器。
  3. 最后解码器的输出即为像素域的 YUV 数据

四、FFmpeg编码实现

从图中可以大致看出视频编码的流程:

  1. 首先要有未压缩的 YUV 原始数据。
  2. 其次要根据想要编码的格式选择特定的编码器。
  3. 最后编码器的输出即为编码后的视频帧

五、FFmpeg转码实现

传统的编码转换程序工作原理图

封装的目的:

  1. 是为了在一个文件流(Stream)中能同时存储视频流(Video Stream)、音频流(Audio Stream)、字幕(Subtitle)、附件(t)、数据(d)等内容。这正是"复用"的含义所在(分时复用)。

  2. 是在网络环境下确保数据的可靠快速传输。

编码的目的:

是为了压缩媒体数据。有别于通用文件数据的压缩,在图像或音频压缩的时候,可以借助图像特性(如前后关联、相邻图块关联)或声音特性(听觉模型)进行压缩,可以达到比通用压缩技术更高的压缩比

相关推荐
辉视广播对讲21 分钟前
科技赋能智慧监管:智能监仓内屏,重塑监所管理新生态
人工智能·科技·音视频
weixin_4216075532 分钟前
SRT字幕驱动视频自动分镜切割:电影解说批量生成的工程实现思路
ffmpeg·srt字幕·ai剪辑·影视解说·ai电影解说·视频自动切割·字幕文件解析
CC1802539448636 分钟前
DP108B—高集成度USB音频单芯片,专为USB耳麦、耳机和音频加密狗(Dongle)应用而优化。
音视频
AI服务老曹1 小时前
[深度解析] 兼容 X86/ARM 与多模态 NPU:基于 GB28181/RTSP 的工业级 AI 视频中台架构设计
arm开发·人工智能·音视频
IT观测1 小时前
2026年视频格式转换器哪个好?国内视频音频格式转换软件功能对比与选型指南
人工智能·音视频
ai产品老杨1 小时前
从GB28181接入到边缘计算:深度解析源码交付级AI视频管理平台架构,节省95%二次开发成本
人工智能·音视频·边缘计算
相偎1 小时前
arm平台编译mpp、ffmpeg和xfreerdp
arm开发·ffmpeg
YuxuanSys-Regen1 小时前
WMMAV&YUXUANSYS/育轩:《数字时代逆行者:WMMAV DJ9300模拟功放的“复古”科技》
科技·音视频·音箱·模拟功放·功放
EasyDSS1 小时前
私有化音视频系统/视频直播点播/高清点播/音视频点播EasyDSS重构智慧校园教学与资源传播新生态
重构·音视频
Code-keys1 小时前
基于 Transformer 的时序生成:从音频到量化交易的统一时序建模
深度学习·音视频·transformer