FFMPEG源码分析
ice_ly000
这个作者很懒,什么都没留下…
展开
-
存HBITMAP到位图bmp文件
BOOL SaveBitmapToFile(HBITMAP hBitmap, CString szfilename) { HDC hDC; //当前分辨率下每象素所占字节数 int iBits; //位图中每象素所占字节数 WORD wBitCount; //定义调色板大小, 位图中像素字节大...原创 2020-01-02 15:53:04 · 501 阅读 · 0 评论 -
[总结]FFMPEG命令行工具之ffplay详解
目录0 前言1 语法 Synopsis2 描述 Description3 选项 Options3.1 流指定器 Stream specifiers3.2 通用选项 Generic options3.3 主要选项 Main options3.3.1 -x width 3.3.2 -yheight 3.3.3 -s size ...原创 2019-02-24 18:36:08 · 16652 阅读 · 3 评论 -
音视频传输协议之-RTMP协议资源汇总
目录零基础学习RTMP协议的总结性文章Adobe官网文献-RTMP规范雷神博客-RTMP系列 协议基础文章: RTMPdump(librtmp)源码分析文章零基础学习RTMP协议的总结性文章 [总结]RTMP流媒体技术零基础学习方法Adobe官网文献-RTMP规范 中...原创 2019-02-13 21:12:07 · 995 阅读 · 0 评论 -
FFMPEG4.1源码解析之 AVClass结构体 && AVOption结构体 && AVDictionary结构体
计算5月完成原创 2019-05-18 11:23:44 · 697 阅读 · 3 评论 -
FFMPEG4.1源码分析之 内存管理APIs av_freep() && av_free()
1.av_freep()av_freep() 声明:所属库:libavutil(lavu),libavutil是ffmpeg的工具类库,本函数是其内存管理类库中的函数 头文件:libavutil/mem.h 声明:释放一个内存块,这个内存块由av_malloc()/av_realloc()家族函数来分配的,并且将指针置为NULL。注意看函数说明,对于av_free()函数的使用会导致...原创 2019-05-23 20:26:05 · 2314 阅读 · 1 评论 -
FFMPEG4.1源码分析之 内存管理APIs av_strdup() && av_strndup()
1 av_strdup()av_strdup() 声明:所属库:libavutil(lavu),lavu是ffmpeg中的功能库,本函数属于内存管理功能 头文件:libavutil/mem.h 声明:拷贝一份字符串。注意,该函数使用了av_malloc_attrib宏进行了属性修饰,该属性的作用见另外一篇文章FFMPEG4.1源码分析之 内存管理APIs av_malloc() &am...原创 2019-05-24 09:16:55 · 2286 阅读 · 0 评论 -
FFMPEG4.1源码分析之 内存管理APIs av_realloc()
1 av_realloc()av_realloc() 声明:所属库:libavutil(lavu),该库是ffmpeg的功能库,当前函数属于内存管理功能 头文件:libavutil/mem.h 功能:1. 分配空间 / 重新分配空间(已分配空间的伸缩) / 释放一块内存。 1)ptr为NULL,且size>0时,分配一块新的内存块; ...原创 2019-05-24 09:17:41 · 817 阅读 · 0 评论 -
FFMPEG4.1源码分析之 内存管理APIs av_malloc() && av_mallocz()
1 av_malloc()av_malloc() 声明:所属库:libavutil,该库是ffmpeg的功能库,提供了线程,内存,文件,加密等功能 头文件:libavutil/mem.h 该函数作用在于给对象分配内存块,并且是内存对齐的 该函数由两个宏av_malloc_attrib && av_alloc_size(1)指定了一些编译器属性,作用如后面所描述,...原创 2019-05-24 09:34:49 · 2406 阅读 · 0 评论 -
FFRMPEG4.1源码分析之 IO层结构体AVIOContext && APIs
目录1 AVIOContext结构体1.1 功能描述1.2 结构体成员详解2 IO层 APIs2.1 avio_open()2.2 avio_open2()2.3avio_read()2.3.1read_packet_wrapper() 2.3.1.1io_read_packet() 2.3.1.2ffurl_...原创 2019-06-20 23:44:10 · 2342 阅读 · 1 评论 -
FFMPEG4.1源码分析之 av_opt_set_defaults()函数
1.av_opt_set_defaults()av_opt_set_defaults() 声明:所属库:libavutil(lavu),由于该函数属于lavu这个库,可以想见是个ffmpeg通用的功能 头文件:libavutil/opt.h 作用:“Set the values of all AVOption fields to their default values.”,注意这个...原创 2019-06-16 16:08:22 · 1186 阅读 · 0 评论 -
FFMPEG4.1源码解析之 最重要的结构体及其关系
1 FFMPEG中的重要结构体1.1 结构体分类FFMPEG中结构体很多。最关键的结构体可以分成以下几类:1)应用层(提纲挈领) AVFormatContext结构体按名字来说,应该将其归为封装层,但是,从整体的架构上来说,它是FFMPEG中提纲挈领的最外层结构体,在音视频处理过程中,该结构体保存着所有信息。这些信息一部分由AVFormatContext的直接成员持有,...原创 2019-06-20 23:44:01 · 1022 阅读 · 0 评论 -
FFRMPEG4.1源码分析之 av_opt_set()
占位原创 2019-06-21 16:20:21 · 566 阅读 · 0 评论 -
FFMPEG4.1源码分析之 媒体打开函数avformat_open_input()
目录0avformat_open_input() 功能详细描述1 avformat_open_input()源码分析1.1init_input()1.1.1av_probe_input_buffer2() //1.1.1.2ffio_rewind_with_probe_data()1.1.2av_probe_input_format2()...原创 2019-06-21 18:53:59 · 3080 阅读 · 2 评论 -
FFRMPEG4.1源码分析之 av_opt_get()
占位原创 2019-06-22 15:13:24 · 522 阅读 · 1 评论 -
FFMPEG4.1源码分析之 媒体流查找函数avformat_find_stream_Info()
1 avformat_find_stream_Info() 源码解析avformat_find_stream_Info声明:所属库:libavformat(lavf) 头文件:avformat.h 声明: 从如下声明的解释可以获知以下几点信息 1)该函数将读取媒体文件的音视频包去获取流信息。本函数常用于avformat_open_input()函数之后,在avf...原创 2019-07-19 11:44:29 · 1528 阅读 · 0 评论 -
FFMPEG4.1源码分析之 字典类型AVDictionary及其相关APIs
目录0 前言0.1 ffmpeg中字典类型的描述0.2 API使用简介1 Structs && Flags1.1AVDictionary1.2AVDictionaryEntry1.3 Flags2 APIs2.1 av_dict_count()2.2av_dict_free()2.3av_dict_copy()2.4av_...原创 2019-05-27 10:59:23 · 1183 阅读 · 0 评论 -
FFMPEG4.1源码分析之 内存管理APIs av_memdup()
1 av_memdup()av_memdup() 声明:所属库:libavutil(lavf) 头文件:libavutil/mem.h 声明:函数内部将创建一块缓冲,从源缓冲区拷贝size大小的数据到该缓冲,并返回该缓冲的地址 /**使用av_malloc复制一块缓冲区 * Duplicate a buffer with av_malloc(). * * p指向需要被拷贝的缓...原创 2019-05-27 10:28:57 · 389 阅读 · 0 评论 -
FFMPEG4.1源码分析之 av_opt_next()
1av_opt_next()av_opt_next() 声明:所属库:libavutil(lavu) 头文件:libavutil/opt.h 声明:枚举所有属于obj对象的AVOptions /** * Iterate over all AVOptions belonging to obj. * * obj必须是AVOptions-enabled struct,意思...原创 2019-05-22 18:44:12 · 498 阅读 · 0 评论 -
FFMPEG4.1源码解析之 libavformat库解读
目录0 前言1avformat.h1.1 重要的结构体 && API1.1.1 lavf && av_register_all &&avformat_network_init1.1.2 AVInputFormat && AVOutputFormat &&av_iformat_next &...原创 2019-05-14 23:50:42 · 2308 阅读 · 0 评论 -
FFMPEG4.1源码分析之 IO操作相关Structures && APIs
先占位1url_alloc_for_protocol()2url_find_protocol()3ffurl_get_protocols()2URLProtocol3URLContexttypedef struct URLProtocol { const char *name; int (*url_open)( URLContext...原创 2019-05-20 20:22:54 · 234 阅读 · 0 评论 -
FFMPEG4.1源码分析之 avformat_alloc_context()
目录0 前言1 avformat_alloc_context() 源码分析1.1 av_malloc()1.2av_mallocz()1.3 avformat_get_context_defaults()1.3.1av_format_context_class结构体1.3.2io_open_default() &&io_close_defau...原创 2019-05-15 21:31:36 · 2120 阅读 · 0 评论 -
FFRMPEG4.1源码分析之 AVFormatContext
啦啦啦~~下周写完原创 2019-05-15 21:52:51 · 214 阅读 · 0 评论 -
FFMPEG4.1源码分析之 线程库
待写~~原创 2019-05-16 12:10:15 · 231 阅读 · 0 评论 -
FFMPEG4.1源码分析之 内存分配
待写,先占位原创 2019-05-16 12:11:03 · 292 阅读 · 0 评论 -
FFRMPEG4.1源码分析之 av_register_all() && avdevice_register_all()
目录0 前言1 av_register_all1.1 基本信息1.2函数声明1.3源码1.3.1 av_ register_all && av_register_input_format && av_register_output_format1.3.2ff_thread_once1.3.3av_format_init_nex...原创 2019-05-12 17:52:33 · 5904 阅读 · 0 评论 -
FFMPEG4.1源码分析之 断言
占位/** * assert() equivalent, that is always enabled. */#define av_assert0(cond) do { \ if (!(cond)) { ...原创 2019-05-21 23:12:53 · 363 阅读 · 0 评论 -
FFMPEG4.1源码分析之 结构体成员管理系统(APIs && Structures)
0 概述FFMPEG中有一种非常棒的访问结构体成员,以及成员的子成员方法,且称为“结构体成员管理系统”吧,该系统涉及到几个FFMPEG中特别常见的结构体AVClass,AVOption,AVDictionary,AVDictionaryEntry等,以及一系列操作这些结构体的函数。也许,有的人会奇怪:C语言中访问结构体变量,直接使用结构体的"."运算符取值,直接使用等于号“=”赋值不就可以了嘛...原创 2019-05-22 10:55:29 · 283 阅读 · 0 评论 -
FFMPEG4.1源码分析之 av_opt_copy()
1av_opt_copy()av_opt_copy() 声明:所属库:libavutil(lavu),注意是lavu库,这个是ffmpeg中的功能库,代表的是一个功能 头文件:libavutil/opt.h 声明:从src对象中拷贝选项到dest对象中。 1)要点一:注意理解“拷贝选项”的意思是将src对象中与src->av_class->opti...原创 2019-05-22 11:03:15 · 631 阅读 · 0 评论 -
FFMPEG源码分析之 av_opt_set_dict()
1 av_opt_set_dict()av_opt_set_dict() 声明:所属库:libavutil(lavu) 头文件:libavutil/opt.h 声明:功能:设置所有的选项到一个对象中入参obj:将被应用选项的对象,该对象必须第一个成员为AVClass*,也即obj应该是某个上下文结构体对象入参options:需要被应用的选项字典。输入的选项字典将被释放,并且会被一个新的...原创 2019-05-22 11:04:36 · 2584 阅读 · 0 评论 -
FFMPEG4.1源码分析之 过时代码管理 attribute_deprecated
目录0FFMPEG过时代码管理1attribute_deprecated1.1定义1.2 作用2FF_DISABLE_DEPRECATION_WARNINGS宏2.1定义2.1 作用3 示例0FFMPEG过时代码管理FFMPEG中对于过时,以及即将在未来某个版本中将去掉的某些API和变量,一般采取如下做法在库的version.h头文件中声明一...原创 2019-05-13 15:23:12 · 2331 阅读 · 0 评论 -
FFRMPEG4.1源码分析之 io_open_default() && io_close_default()
目录1io_open_default()1.1ffio_open_whitelist()1.1.1ffurl_open_whitelist() 1.1.1.1 ffurl_alloc() 1.1.1.1.1url_find_protocol() ...原创 2019-05-19 09:45:33 · 1001 阅读 · 0 评论