雷霄骅(leixiaohua1020)的专栏

一个广院工科生的视音频技术笔记

FFmpeg源代码简单分析:libavdevice的gdigrab

本文记录FFmpeg的libavdevice中GDIGrab组件的源代码。GDIGrab用于在Windows下屏幕录像(抓屏)。它的源代码位于libavdevice\gdigrab.c。关键函数的调用关系图如下图所示。图中绿色背景的函数代表源代码中自己声明的函数,紫色背景的函数代表Win32的AP...

2015-03-25 12:33:42

阅读数 12366

评论数 17

FFmpeg源代码简单分析:libavdevice的avdevice_register_all()

本文记录一下FFmpeg中libavdevice注册设备的函数avdevice_register_all()。avdevice_register_all()的注册方式和av_register_all()、avcodec_register_all()这几个函数是类似的,具体的代码如下。

2015-03-24 21:49:57

阅读数 12257

评论数 1

FFmpeg源代码简单分析:configure

本文记录FFmpeg的Configure脚本的源代码。Configure一方面用于检测FFmpeg的编译环境,另一方面根据用户配置的选项生成config.mak,config.h文件(可能还有config.asm),提供给Makefile使用。由于FFmpeg的configure脚本很复杂(一个4...

2015-03-24 10:22:53

阅读数 40521

评论数 8

FFmpeg源代码简单分析:makefile

本文记录FFmpeg的Makefile的源代码。Makefile用于编译FFmpeg的源代码。通过分析Makefile文件,可以了解FFmpeg的源代码生成的流程。有关Makefile这部分我本身基础不算很牢,很多地方还在慢慢摸索,所以分析的内容不能保证完全准确。以后有时间和其他朋友多交流再慢慢完...

2015-03-23 11:22:29

阅读数 21791

评论数 4

FFmpeg源代码简单分析:libswscale的sws_scale()

本文继续上一篇文章《FFmpeg源代码分析:sws_getContext()》的内容,简单分析FFmpeg的图像处理(缩放,YUV/RGB格式转换)类库libswsscale中的sws_scale()函数。libswscale是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的...

2015-03-17 20:02:33

阅读数 31644

评论数 6

FFmpeg源代码简单分析:libswscale的sws_getContext()

打算写两篇文章记录FFmpeg中的图像处理(缩放,YUV/RGB格式转换)类库libswsscale的源代码。libswscale是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的拉伸等工作。

2015-03-17 12:16:43

阅读数 26458

评论数 5

FFmpeg源代码简单分析:结构体成员管理系统-AVOption

本文继续上篇文章《FFmpeg源代码分析:结构体成员管理系统-AVClass》中的内容,记录FFmpeg中和AVOption相关的源代码。AVOption用于在FFmpeg中描述结构体中的成员变量。一个AVOption可以包含名称,简短的帮助信息,取值等等。上篇文章简单回顾上篇文章中概括了AVCl...

2015-03-16 09:41:56

阅读数 15696

评论数 3

FFmpeg源代码简单分析:结构体成员管理系统-AVClass

打算写两篇文章记录FFmpeg中和AVOption有关的源代码。AVOption用于在FFmpeg中描述结构体中的成员变量。它最主要的作用可以概括为两个字:“赋值”。一个AVOption结构体包含了变量名称,简短的帮助,取值等等信息。所有和AVOption有关的数据都存储在AVClass结构体中。...

2015-03-15 19:21:03

阅读数 14193

评论数 3

FFmpeg源代码简单分析:日志输出系统(av_log()等)

本文分析一下FFmpeg的日志(Log)输出系统的源代码。日志输出部分的核心函数只有一个:av_log()。使用av_log()在控制台输出日志的效果如下图所示。av_log()av_log()是FFmpeg中输出日志的函数。随便打开一个FFmpeg的源代码文件,就会发现其中遍布着av_log()...

2015-03-14 12:19:53

阅读数 30677

评论数 4

FFmpeg源代码结构图 - 编码

上一篇文章深入分析了FFmpeg解码过程中核心API的内部源代码,本文继续分析FFmpeg编码过程中核心API的内部源代码。本文的编码流程可以参考程序《最简单的基于FFmpeg的视频编码器》。函数调用关系图首先呈现分析的结果,如图所示。

2015-03-13 14:42:15

阅读数 31005

评论数 25

FFmpeg源代码结构图 - 解码

近期研究了一下FFmpeg的内部的源代码。之前对于FFmpeg的研究主要在它的应用层面上,因此制作的很多示例程序都是调用的FFmpeg的API。但是一直感觉这样对FFmpeg的理解还是比较浅,所以打算剖析一下它的源代码,理一下它内部结构的“脉络”。但是有一个很难办的问题:FFmpeg自带的三个工程...

2015-03-12 14:03:16

阅读数 76305

评论数 17

FFmpeg源代码简单分析:avcodec_close()

本文简单分析FFmpeg的avcodec_close()函数。该函数用于关闭编码器。

2015-03-12 00:06:14

阅读数 13685

评论数 2

FFmpeg源代码简单分析:avcodec_encode_video()

本文简单分析FFmpeg的avcodec_encode_video2()函数。该函数用于编码一帧视频数据。

2015-03-11 22:26:14

阅读数 23876

评论数 3

FFmpeg源代码简单分析:av_write_trailer()

打算写两篇文章简单分析FFmpeg的写文件用到的3个函数avformat_write_header(),av_write_frame()以及av_write_trailer()。这篇文章继续分析av_write_trailer()。av_write_trailer()用于输出文件尾,它的声明位于l...

2015-03-11 17:29:06

阅读数 17739

评论数 4

FFmpeg源代码简单分析:av_write_frame()

打算写两篇文章简单分析FFmpeg的写文件用到的3个函数avformat_write_header(),av_write_frame()以及av_write_trailer()。上篇文章已经分析了avformat_write_header(),这篇文章继续分析av_write_frame()。

2015-03-11 16:03:35

阅读数 32962

评论数 6

FFmpeg源代码简单分析:avformat_write_header()

打算写两篇文章简单分析FFmpeg的写文件用到的3个函数:avformat_write_header(),av_write_frame()以及av_write_trailer()。其中av_write_frame()用于写视频数据,avformat_write_header()用于写视频文件头,而...

2015-03-08 18:45:57

阅读数 30306

评论数 2

FFmpeg源代码简单分析:avcodec_open2()

本文简单分析FFmpeg的avcodec_open2()函数。该函数用于初始化一个视音频编解码器的AVCodecContext。

2015-03-08 00:14:29

阅读数 40856

评论数 11

FFmpeg源代码简单分析:avformat_close_input()

本文简单分析FFmpeg的avformat_close_input()函数。该函数用于关闭一个AVFormatContext,一般情况下是和avformat_open_input()成对使用的。

2015-03-07 10:58:52

阅读数 18328

评论数 1

FFmpeg源代码简单分析:av_find_decoder()和av_find_encoder()

本文记录FFmpeg的两个API函数:avcodec_find_encoder()和avcodec_find_decoder()。avcodec_find_encoder()用于查找FFmpeg的编码器,avcodec_find_decoder()用于查找FFmpeg的解码器。

2015-03-06 12:40:06

阅读数 20713

评论数 2

FFmpeg源代码简单分析:avformat_find_stream_info()

本文简单分析FFmpeg中一个常用的函数:avformat_find_stream_info()。该函数可以读取一部分视音频数据并且获得一些相关的信息。

2015-03-06 11:15:37

阅读数 45325

评论数 6

提示
确定要删除当前文章?
取消 删除
关闭
关闭