Fork me on GitHub
Regent's Blog

Code Art Online


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 公益404

FFmpeg编解码新API的正确使用

发表于 2018-11-21 | 分类于 视频技术

由于一直对FFmpeg中新的编解码API不太理解,而网上不少资料还是使用旧API,即使是使用新API的,其中一些说法亦不足以令鄙人理解,遂在官方网页上找到了相关的解释,算是比较清晰的说明新API的用法和注意事项,故本文参照其内容做一番记录。

阅读全文 »

H.264/AVC编解码技术及JM源码分析(五)——帧间预测

发表于 2018-10-12 | 分类于 视频技术

相比帧内预测,帧间预测要更加复杂,因为其本质上是提高更高压缩效率的技术,其中涉及到诸如亚像素插值、运动搜索、多参考帧管理、加权预测等等的知识点。这些知识内容繁多,加之笔者也没有深入的了解,因此本文的内容只会讲解少量知识点,而更多注重于结合代码去了解整个帧间预测的流程,同时建议读者从其他书籍获取更加详尽的讲解。

阅读全文 »

基于FFmpeg4.0+SDL2.0实现简单的纯视频播放器

发表于 2018-09-23 | 分类于 视频技术

本文使用FFmpeg4.0.2+SDL2.0实现一个简单的纯视频(无音频)播放器,代码尽量使用新的函数,注释完整。该播放器支持空格键暂停/播放和调整窗口大小。注:SDL.h可以不放在extern “C”中,因为SDL本身进行了C++程序的判断处理。另外av_register_all()和avformat_network_init()都已经不再是必须调用的函数了,前者弃用,后者可以自动调用。更加完整的播放器工程参见GitHub上本人对ffplay的简单重构:ffplay-refactor

阅读全文 »

SDL基本知识

发表于 2018-09-23 | 分类于 视频技术

本文主要记录一些SDL的基础知识,基于SDL2.0,有时间会慢慢增改。SDL是一个跨平台的库,通过封装OpenGL和Direct3D等提供对音频、键盘、鼠标、操纵杆和图形硬件的底层访问。FFmpeg只能实现视音频解码,而具体渲染需要配合SDL来实现,官方的ffplay用的也是SDL。

阅读全文 »

FFmpeg基本知识

发表于 2018-09-22 | 分类于 视频技术

鼎鼎大名的FFmpeg不用多作介绍,基本是音视频技术必备的基础库之一,提供了强大的音视频处理方案。本文记录FFmpeg的一些基本知识,基于4.0.2,有时间会慢慢增改。(PS:可能有错误)

FFmpeg最常用的结构体

阅读全文 »

VS2017+Qt+FFmpeg+SDL配置

发表于 2018-09-13 | 分类于 视频技术

本文主要记录一下在VS2017如何配置Qt、FFmpeg和SDL,以便于后续在VS上进行相关的开发。前提:已经安装好了VS2017,本人系统Win10。

阅读全文 »

H.264/AVC编解码技术及JM源码分析(四)——帧内预测

发表于 2018-09-13 | 分类于 视频技术

帧内预测是视频编码中非常重要的一环,H.264的帧内预测包括亮度预测和色度预测,其中亮度预测有四种类型:Intra_4x4,Intra_8x8,Intra_16x16和I_PCM。这里主要讲解Intra_4x4和Intra_16x16。需要注意的是用于帧内预测的相邻像素必须是在做去块滤波之前。同时,所有预测函数的调用实际上都是在模式决策这一环进行的,模式决策是个比较复杂且耗时的过程,有机会再仔细研究。

阅读全文 »

H.264/AVC编解码技术及JM源码分析(三)——宏块访问

发表于 2018-09-12 | 分类于 视频技术

作为基础,对其他宏块/子块的访问是编解码进行预测时所必不可少的操作,除此以外在许多别的地方也会用到,比如在对系数进行熵编码时。因此本文主要讲解源码中关于宏块访问的知识,这部分代码主要在mb_access.c中。

阅读全文 »

H.264/AVC编解码技术及JM源码分析(二)——编解码流程与trace文件使用

发表于 2018-09-11 | 分类于 视频技术

本文主要讲解JM 19.0中整个编解码的流程以及其用于调试的trace文件的使用。

编码流程

编码流程的主要函数调用顺序以及所在文件如下:

阅读全文 »

H.264/AVC编解码技术及JM源码分析(一)——H.264分层编码与语法结构

发表于 2018-08-09 | 分类于 视频技术

接下来的一系列文章将会分别讲解H.264/AVC中所用到的一些编解码技术,同时会结合源码进行分析。本文主要讲解H.264的分层编码以及相关的语法结构

H.264的分层编码

  H.264标准实现将压缩编码和网络传输分离,设计了分层结构,主要包括网络抽象层(Network Abstraction Layer,NAL)和视频编码层(Video Coding Layer,VCL)。其中VCL是真正进行视频编解码的层次,它又可进一步层层细分为条带层、宏块层等等;而NAL是在VCL基础上进行一层封装,以方便传输和储存。相关的结构如图所示。
H.264分层编码

阅读全文 »
12
Regent Tsui

Regent Tsui

11 日志
1 分类
6 标签
© 2019 Regent Tsui
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4
本站访客数 人次 本站总访问量 次