前言:
首先我们知道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解完码后将数据取出文章来源:https://www.toymoban.com/news/detail-401553.html
如果想要将进入源码分析的话,可以进入这个目录:\ffmpeg\doc\examples文章来源地址https://www.toymoban.com/news/detail-401553.html
到了这里,关于FFmpeg编解码流程解读--视频解码1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!