一.流程

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的视频播放器之四:视频解码相关推荐

  1. QT软件开发-基于FFMPEG设计视频播放器-软解图像(一)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

  2. 基于FFmpeg开发视频播放器, 基本流程(一)

    刚开始学习FFmpeg,用几篇文章记录下,使用ffmpeg开发一个简单的视频播放器,大概的过程.这里只讨论核心代码,如解封装,音频的解码播放,视频的解码播放,音视频同步,不涉及UI布局. 基于FFmp ...

  3. QT软件开发-基于FFMPEG设计视频播放器-解码音频(三)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

  4. QT软件开发-基于FFMPEG设计视频播放器-GPU硬解、OpenGL渲染、解码音频完整例子(六)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

  5. QT软件开发-基于FFMPEG设计视频播放器-GPU硬解、OpenGL渲染(四)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

  6. 基于FFmpeg的视频播放器之一:开篇

    FFmpeg的研究几乎都是从ffplay开始的,ffplay是FFmpeg自带播放器,它的源码虽然只有一个文件,但是麻雀虽小五脏俱全,播放器的基本功能都有了.初看ffplay的源码,会感觉特别绕,跳转 ...

  7. C++---基于ffmpeg实现视频播放器(一)

    ffmpeg.exe 功能: ffmpeg.exe实现视频的转码. 命令格式 ffmpeg -i [输入文件的路径] -b:v [输出文件的码率] [输入文件的路径] 简单命令 ffmpeg -i i ...

  8. 基于FFmpeg的视频播放器之七:音频解码

    一.流程 音频解码的流程和视频解码几乎一样,最大的区别是解码后需要进行重采样.因为解码出的AVSampleFormat格式是AV_SAMPLE_FMT_FLTP(float, planar),该格式无 ...

  9. FFmpeg+SDL视频播放器

    本博客是摘自雷霄骅大神的课程<基于 FFmpeg + SDL 的视频播放器的制作>课程 里的内容,非常适合音视频小白入门,在这里感谢雷神的指导! 目录 FFmpeg和SDL的整合实现视频播 ...

最新文章

  1. 大学计算机思维导图_我学计算机,也会修电脑
  2. 数组中只出现一次的数字
  3. Tomcat:基础安装和使用教程
  4. 巴伦周刊:“物联网”正走向死胡同
  5. 服务器硬件oid,HPE ProLiant DL580 Gen10 服务器
  6. 3.2 SE11创建数据元素
  7. java select 不是date,iPhonedateselect器,而不是键盘?
  8. Python+matplotlib一笔绘制红色五角星
  9. 中科大和东北大学计算机考研,我国39所985高校,一共被分为五个档次,复旦大学处于第二档...
  10. vasp软件linux,QVASP 是一款 VASP 的辅助软件
  11. mysql 1194_打开网页提示mysql发生错误,错误号1194,请问下该怎么解决? 爱问知识人...
  12. FutureTask 中 get(timeout) 的超时是怎么玩的?
  13. Vue修饰符(Modifier)
  14. 深度详解新iPad八核GPU
  15. Linux 多线程 Pthread 互斥量
  16. 70个Python实用练手项目(附源码)
  17. Linux中设置和重启网络的命令
  18. 计算机网络之域名解析
  19. MarkDown 图片和链接
  20. Jenkins添加DingTalk

热门文章

  1. 90后已三十而立!一张照片用GAN生成70岁的你
  2. pragma HLS stream语法
  3. 你知道PMP是什么吗?
  4. JAVA类与对象tank_实验四 类与对象
  5. 又一个10年来学习的回忆
  6. 如何解决tomcat启动时报错问题
  7. spring的自定义标签
  8. 2017年软上半年软考网络工程师级别考前冲刺之第三天-朱小平-专题视频课程
  9. 随机计数器java_Java——随机计数器
  10. 唤客猫SCRM功能详解(一)