由于一直对FFmpeg中新的编解码API不太理解,而网上不少资料还是使用旧API,即使是使用新API的,其中一些说法亦不足以令鄙人理解,遂在官方网页上找到了相关的解释,算是比较清晰的说明新API的用法和注意事项,故本文参照其内容做一番记录。
H.264/AVC编解码技术及JM源码分析(五)——帧间预测
相比帧内预测,帧间预测要更加复杂,因为其本质上是提高更高压缩效率的技术,其中涉及到诸如亚像素插值、运动搜索、多参考帧管理、加权预测等等的知识点。这些知识内容繁多,加之笔者也没有深入的了解,因此本文的内容只会讲解少量知识点,而更多注重于结合代码去了解整个帧间预测的流程,同时建议读者从其他书籍获取更加详尽的讲解。
基于FFmpeg4.0+SDL2.0实现简单的纯视频播放器
本文使用FFmpeg4.0.2+SDL2.0实现一个简单的纯视频(无音频)播放器,代码尽量使用新的函数,注释完整。该播放器支持空格键暂停/播放和调整窗口大小。注:SDL.h可以不放在extern “C”中,因为SDL本身进行了C++程序的判断处理。另外av_register_all()和avformat_network_init()都已经不再是必须调用的函数了,前者弃用,后者可以自动调用。更加完整的播放器工程参见GitHub上本人对ffplay的简单重构:ffplay-refactor
FFmpeg基本知识
VS2017+Qt+FFmpeg+SDL配置
本文主要记录一下在VS2017如何配置Qt、FFmpeg和SDL,以便于后续在VS上进行相关的开发。前提:已经安装好了VS2017,本人系统Win10。
H.264/AVC编解码技术及JM源码分析(四)——帧内预测
帧内预测是视频编码中非常重要的一环,H.264的帧内预测包括亮度预测和色度预测,其中亮度预测有四种类型:Intra_4x4,Intra_8x8,Intra_16x16和I_PCM。这里主要讲解Intra_4x4和Intra_16x16。需要注意的是用于帧内预测的相邻像素必须是在做去块滤波之前。同时,所有预测函数的调用实际上都是在模式决策这一环进行的,模式决策是个比较复杂且耗时的过程,有机会再仔细研究。
H.264/AVC编解码技术及JM源码分析(三)——宏块访问
作为基础,对其他宏块/子块的访问是编解码进行预测时所必不可少的操作,除此以外在许多别的地方也会用到,比如在对系数进行熵编码时。因此本文主要讲解源码中关于宏块访问的知识,这部分代码主要在mb_access.c中。