笔谈FFmpeg(二)
经过前面的学习对FFmpeg的基本流程已经很熟悉了,现在到了掌握其中细节的时候了,用FFmpeg做播放器解码操作中,涉及到了一些结构体,这些结构之间到底有什么关系,它们是怎样协同工作的呢。文章 FFMPEG中最关键的结构体之间的关系 对这些结构间的关系进行了分析,详细内容如下:
FFMPEG中结构体很多。最关键的结构体可以分成以下几类:
a) 解协议(http,rtsp,rtmp,mms)
AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议“file”)
b) 解封装(flv,avi,rmvb,mp4)
AVFormatContext主要存储视音频封装格式中包含的信息;AVInputFormat存储输入视音频使用的封装格式。每种视音频封装格式都对应一个AVInputFormat 结构。
c) 解码(h264,mpeg2,aac,mp3)
每个AVStream存储一个视频/音频流的相关数据;每个AVStream对应一个AVCodecContext,存储该视频/音频流使用解码方式的相关数据;每个AVCodecContext中对应一个AVCodec,包含该视频/音频对应的解码器。每种解码器都对应一个AVCodec结构。
d) 存数据
视频的话,每个结构一般是存一帧;音频可能有好几帧
解码前数据:AVPacket
解码后数据:AVFrame
他们之间的对应关系如下所示:
上面提到的这些结构到底是干嘛用的,中国传媒大学的一个博士写了一系列的结构体的分析的文章,在这里列一个列表,需要好好看下:
FFMPEG结构体分析:AVFrame
FFMPEG结构体分析:AVFormatContext
FFMPEG结构体分析:AVCodecContext
FFMPEG结构体分析:AVIOContext
FFMPEG结构体分析:AVCodec
FFMPEG结构体分析:AVStream
FFMPEG结构体分析:AVPacket
转载于:https://www.cnblogs.com/sunminmin/p/4463057.html
笔谈FFmpeg(二)相关推荐
- FFmpeg二次开发
本文主要讲解 FFmpeg 的二次开发,ffmpeg.exe 的命令行功能特别强大,很多需求都能直接用命令行实现,但是总有一些需求用 命令行实现不太好做. 而你实现那些特殊需求,通常需要把 ffmpe ...
- ffmpeg (二):ffmpeg结合SDL2.0解码视频流
转自:http://blog.csdn.net/oldmtn/article/details/20284721 看了http://blog.csdn.NET/leixiaohua1020/articl ...
- 深入浅出FFMPEG(二) SDK version 0.11
用户接口 数据结构 基本概念 编解码器.数据帧.媒体流和容器是数字媒体处理系统的四个基本概念. 首先需要统一术语: 容器/文件(Conainer/File):即特定格式的多媒体文件. 媒体流(Stre ...
- 【FFmpeg】ffmpeg 命令查询二 ( 比特流过滤器 | 可用协议 | 过滤器 | 像素格式 | 标准声道布局 | 音频采样格式 | 颜色名称 )
FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...
- 流媒体技术学习笔记之(十八)Ubuntu 16.04.3 如何编译 FFmpeg 记录
官方文档:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu 一.最简单安装: apt-get install ffmpeg 二.安装最新版本 大 ...
- ffmpeg的中文学习文档
ffmpeg的中文学习文档 文章目录: 一.ffmpeg介绍 二.学习参考文档 1.中文 一.ffmpeg介绍 ffmpeg是视频处理工具,可选参数非常多,功能也非常的强大,可以用来开发各种视频处理工 ...
- 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
文章目录 前言 一.下载 FFMPEG 二.拷贝可执行文件 三.拷贝动态库文件 四.运行 ffmpeg 命令 总结 前言 Android 中需要使用到 FFMPEG , 先在 Windows 中搭建一 ...
- 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
文章目录 一.前置操作 ( 移植 FFMPEG ) 二.FFMPEG 混音命令 三.Android FFMPEG 混音源代码完整示例 四.博客源码 一.前置操作 ( 移植 FFMPEG ) 参考 [A ...
- 201024阶段二Linux
目录 一.学习的知识点 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 四.其他需要反馈的问题 五.心得体会 一.学习的知识点 1 Linux操作系统 2 Qt 3 sqlite3 4 ffm ...
- FFmpeg 在 Python 中的安装使用方法详解
目录 一.了解 FFmpeg 二.FFmpeg 的组成 三.FFmpeg for Windows 3.1 下载 3.2 安装 3.3 测试 四.用法 五.附录 一.了解 FFmpeg FFmpeg是一 ...
最新文章
- 讲座记录:从码农到架构师(精简版)
- 不用3D建模软件,如何用数学公式创造一个女孩?会眨眼,有光影的那种
- 面试官:你知道java类是怎么跑起来的吗?问的我一脸懵
- 人与动物之间有没有一条不可逾越的鸿沟?——从基础存在论到生命哲学
- CSS继承选择器与包含选择器的比较
- EDM营销的三个小窍门-EDM营销必看
- 理解矩阵 的一些评论
- 发布后网站浏览时出现乱码
- mysql全表重命名备份_Mysql数据库和表的常用操作以及数据备份恢复
- 上车时机已到--.NETCore是适应时代发展的雄鹰利剑
- Java并发教程–重入锁
- centos7下yum源安装saltstack
- 【java毕业设计】 基于java+SSH+JSP的保险业务管理系统设计与实现(毕业论文+程序源码)——保险业务管理系统
- Redis安装到Windows系统上的详细步骤
- 考研408-计算机组成原理-总线
- 软件测试面试宝典【测试流程、数据库、Linux、测试工具、自动化、性能测试】
- ORACLE —— 事务
- ffmpeg实现g711音频和H264,H265封装mp4(整理,非原创)
- 【冰糖R语言】Shiny简单笔记
- 和老板比,员工弱爆了
热门文章
- 一场重新定义的发布会
- python画五角星_Python第25课:海龟绘图_自定义函数的应用
- TCP连接、Http连接与Socket连接
- 安装github for windows问题解决
- 【转】C#中的Stream
- CF 61E 树状数组+离散化 求逆序数加强版 三个数逆序
- 组队开发第二周第五次会议
- 如何把自己写的python程序给别人用
- Android Studio connot resolve symbol XXX 无法解析的符号
- Android Broadcast Receiver 与Activity() (android 开发的四大组件)