基于FFmpeg的视频播放器之四:视频解码
一.流程
1.avcodec_find_decoder
提供两种方式查找解码器,通过codecId查找avcodec_find_decoder与通过名字查找avcodec_find_decoder_by_name,这里使用的是AVCodec *avcodec_find_decoder(enum AVCodecID id)
这个ID号从哪里获取呢?就像之前我们解封装之后,可以发现我们的AVStream里面其实是有一个codecID, 那个ID号就是我们要用到的解码器的ID号。当然如果本身知道格式的ID号,也可以直接传进去(一般我们用h264,那这个codecID就是27)。如果找到解码器,然后返回该解码器AVCodec,如果没找到则返回nullptr
2.avcodec_open2
int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
该函数用于初始化 一个音视频编解码器的AVCodecContext,所做的工作如下所示:
(1)为各种结构体分配内存(通过各种av_malloc()实现)。
(2)将输入的AVDictionary形式的选项设置到AVCodecContext。
(3)其他一些零零碎碎的检查,比如说检查编解码器是否处于“实验”阶段。
(4)如果是编码器,检查输入参数是否符合编码器的要求
(5)调用AVCodec的init() 初始化具体的解码器。
3.avcodec_send_packet与avcodec_receive_fram
基于FFmpeg的视频播放器之四:视频解码相关推荐
- QT软件开发-基于FFMPEG设计视频播放器-软解图像(一)
QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...
- 基于FFmpeg开发视频播放器, 基本流程(一)
刚开始学习FFmpeg,用几篇文章记录下,使用ffmpeg开发一个简单的视频播放器,大概的过程.这里只讨论核心代码,如解封装,音频的解码播放,视频的解码播放,音视频同步,不涉及UI布局. 基于FFmp ...
- QT软件开发-基于FFMPEG设计视频播放器-解码音频(三)
QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...
- QT软件开发-基于FFMPEG设计视频播放器-GPU硬解、OpenGL渲染、解码音频完整例子(六)
QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...
- QT软件开发-基于FFMPEG设计视频播放器-GPU硬解、OpenGL渲染(四)
QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...
- 基于FFmpeg的视频播放器之一:开篇
FFmpeg的研究几乎都是从ffplay开始的,ffplay是FFmpeg自带播放器,它的源码虽然只有一个文件,但是麻雀虽小五脏俱全,播放器的基本功能都有了.初看ffplay的源码,会感觉特别绕,跳转 ...
- C++---基于ffmpeg实现视频播放器(一)
ffmpeg.exe 功能: ffmpeg.exe实现视频的转码. 命令格式 ffmpeg -i [输入文件的路径] -b:v [输出文件的码率] [输入文件的路径] 简单命令 ffmpeg -i i ...
- 基于FFmpeg的视频播放器之七:音频解码
一.流程 音频解码的流程和视频解码几乎一样,最大的区别是解码后需要进行重采样.因为解码出的AVSampleFormat格式是AV_SAMPLE_FMT_FLTP(float, planar),该格式无 ...
- FFmpeg+SDL视频播放器
本博客是摘自雷霄骅大神的课程<基于 FFmpeg + SDL 的视频播放器的制作>课程 里的内容,非常适合音视频小白入门,在这里感谢雷神的指导! 目录 FFmpeg和SDL的整合实现视频播 ...
最新文章
- 大学计算机思维导图_我学计算机,也会修电脑
- 数组中只出现一次的数字
- Tomcat:基础安装和使用教程
- 巴伦周刊:“物联网”正走向死胡同
- 服务器硬件oid,HPE ProLiant DL580 Gen10 服务器
- 3.2 SE11创建数据元素
- java select 不是date,iPhonedateselect器,而不是键盘?
- Python+matplotlib一笔绘制红色五角星
- 中科大和东北大学计算机考研,我国39所985高校,一共被分为五个档次,复旦大学处于第二档...
- vasp软件linux,QVASP 是一款 VASP 的辅助软件
- mysql 1194_打开网页提示mysql发生错误,错误号1194,请问下该怎么解决? 爱问知识人...
- FutureTask 中 get(timeout) 的超时是怎么玩的?
- Vue修饰符(Modifier)
- 深度详解新iPad八核GPU
- Linux 多线程 Pthread 互斥量
- 70个Python实用练手项目(附源码)
- Linux中设置和重启网络的命令
- 计算机网络之域名解析
- MarkDown 图片和链接
- Jenkins添加DingTalk