FFmpeg编解码流程解读--视频解码1_撸代码的小妖怪的博客-程序员秘密_ffmpeg解码流程

技术标签: 音视频  

前言:

首先我们知道ffmpeg是一个开源的音视频编解码,封装和解封装的工具。具体的下载方式这里不多赘述(感兴趣百度自行下载源码)。这里主要将编解码。ffmpeg音视频编解码依赖libavcodec。其为我们提供一套架构,其中包含了编解码器。这里主要介绍我们常用的一些API接口去处理实现编解码等媒体业务。但是一个好的应用框架需要兼容所有的功能的同时还不会因为底层api接口发生改变的(通过上层策略兼容新旧API才是我们长久之策)。

解码:

视频解码:

这边先将一下旧API流程:

注意:

1、如果要使用FFmpeg的API,就要先注册使用Av_register_all注册。

2、avcodec_find_decoder和Avcodec_alloc_context3分别是查找和申请解码器

3、vcodec_open2打开解码器,至此解码功能开启。

4、av_read_frame收流,即获取解码数据

5、Avcodec_decode_video2开始数据解码

新的API:

新的API其实大致流程其实是一样的,只是接口有所不同。

个人感觉区别如下:

1、新增了一个码流解析器,Av_parser_init和av_parser_parse2分别查找解析器和码流解析

2、Avcode_send_packet向解析器发送数据

3、avcodec_receive_frame解完码后将数据取出

如果想要将进入源码分析的话,可以进入这个目录:\ffmpeg\doc\examples

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46383158/article/details/123438722

智能推荐

layui-iframe获取不到window对象的问题_继续爬的博客-程序员秘密

后台管理系统中, 总有一些基础配置, 并且各种配置还挺多的, 现在用的layui框架, 基本配置都设置好的, 但是最近遇到一个问题, 就是, 同一个js处理table, 在编辑的时候, 用到了layui.open(), 同一个js文件 代码一模一样, 但是出了问题:yes: function (index, layerObj) { var l = window["layui-la...

美丽新世界读后感_普通网友的博客-程序员秘密

美丽新世界读后感作者:阿道司·赫胥黎《美丽新世界》这部惊世之作出版于1932年,作者阿道司·赫胥黎以传奇性的远见和充满讽刺意味的笔触,塑造了一个物质生活丰富、科技高度发达的“美丽的新世界”。在遥远的未来,人们在基因设计与药物麻醉下,失去了个人情感、失去了思考的能力、失去了爱情,只是消极服从于一种统治秩序。去保留区度假的伯纳德和列宁娜,偶遇了“野人”约翰和他的母亲琳达,并将他们带回了文...

息屏通知 android,息屏提醒app免费版_一只快乐的小柠檬的博客-程序员秘密

息屏提醒app免费版(SmileSoft-AOD)是一款手机桌面美化软件,这里拥有很多好玩有趣的功能,让用户可以在不同的场景中使用。息屏提醒app免费版不需要root也能正常使用,而且可以自由的调节手机的亮度等,使用起来相当的方便,还有强大的省电模式哦。息屏提醒app免费版简介1、息屏提醒app免费版始终显示主题,还有自动旋转功能。2、可以调整屏幕亮度以及背景、壁纸和快捷启动器等。3、具有隐藏和关...

靠一己之力造就3个首富,丁磊、刘强东、宗庆后背后的神秘女人_和牛财经的博客-程序员秘密

她虽不在企业创始人的功劳簿上,但却是成就创始人的不二伯乐。来 源 | 快刀财经(ID:kuaidaocaijing)作 者 | 路老二编 辑 | 黄晓军想起娃哈哈,我们脑海里浮现的是王力宏和那瓶水。提起网易,第一联想就是创始人丁磊。看到携程二字,许多人会想到机票和旅游。提到京东,没人不知道刘强东。说到美团,王兴和他的外卖最先映入眼帘。但这一众大佬背后,都站着同一个女人,她是中国第一代VC、投资界赫赫有名的“铁娘子”。为了这群...

开方的1种方式(转)_广大菜鸟的博客-程序员秘密

学习参考:https://blog.csdn.net/junlon2006/article/details/79766188 「珂学原理」No.95「骚代码是怎样炼成的」解剖快速平方根倒数算法 ...

随便推点

C#数据结构-Dictionary实现_鹅厂程序小哥的博客-程序员秘密

在看过一篇大神写的《带你看懂Dictionary的内部实现》,对Dictionary的内部实现有了一个清晰的了解,但纸上得来终觉浅,作为程序员,还是自己调试一下代码,记忆更深刻,为此专门拷贝出C#的Dictionary源码,因为源码有很多保护级别的代码,不能直接运行。下面贴出我调试没有问题的Dictionary源码(有部分代码没有重写),并附带官方调用实例,方便断点调试。Dictionary源码:...

Linux学习笔记 —— 常见的Linux命令和vim命令__Yucen的博客-程序员秘密

Linux命令cd 改变目录cd / 是跳转到根目录cd ~ 是跳转到当前用户的家目录cd .. 返回上一级目录pwd 显示当前路径ll(ls) 显示当前目录所有文件mkdir src 创建目录rm -r src 删除目录rm 1.js 删除文件touch 1.js 新建文件mv index.html src 移动文件reset 重新初始化终端/清屏clear 清屏history 查看历史命令help 帮助exit 退出#代表注释vim命令Vim是从 vi 发展

python学习笔记:2.5——2.6_侠客·Lee的博客-程序员秘密

2.5 表达式和运算符表达式,就是由变量、运算符、数字、数字分组符号(括号)等以能求得数值的有意义排列方法所得的组合运算的分类1.算术运算2.比较运算/关系运算3.赋值运算4.逻辑运算5.位运算6.成员运算7.身份运算算数运算1.算术运算2.比较运算/关系运算3.赋值运算4.逻辑运算5.位运算6.成员运算7.身份运算比较运算== 等于运算!=...

微信小程序评分组件Rate_ssy_south的博客-程序员秘密_小程序评分组件

效果图如下组件支持功能: 仅显示评分,或者显示+打分 点击半颗星评分,点击整颗星评分 新建组件文件夹RateRate.wxml文件内容<!-- 评分组件 --><view class='starbox'> <text class='startext' wx:if="{{isShowStarValue}}">{{starValue}}</text> <view class='imgbox imgbox1' ...

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之KEY、LED_girlkoo的博客-程序员秘密

经过前面的移植,内核已经可以在tqimx6q上正常挂载根文件系统了,接下来开始移植各类设备驱动,本文先来移植按键和LED。之所以从按键和LED开始是因为这两种设备的驱动是最简单的。按键驱动移植查看tqimx6q的原理图可知,这块开发板有5个按键,其中,除了reset键之外还有个电源键,这个电源键与其它键有些不同,因此,本文移植剩余的这三个键(电源键在移植电源管理模块时处理)。通过阅读原理图

Ubuntu 18.04中安装VMware14.1.0踩坑_fantasyagain的博客-程序员秘密

Ubuntu 18.04中安装VMware14.1.0踩坑96 GodfansMa2018.09.04 10:50* 字数 465 阅读 88评论 0喜欢 1转载自: https://www.jianshu.com/p/5fc43bbbac5a如果只想快速安装VMware 请直接看文章最后。一、网上找了14.1.0的破解安装包,下载地址如下:https://www.macxin.com...

推荐文章

热门文章

相关标签