FFmpeg实战之路
文章平均质量分 82
本章通过一些代码示例介绍 ffmpeg
Loken2020
音视频工程师,《FFmpeg原理》作者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
InputStream数据结构分析
struct InputStream 是单个输入流的管理器。是由 add_input_stream() 函数申请内存,以及赋值 InputStream 的各个字段的。而 input_streams 数组是一个全局变量,包含了所有输入文件里面的所有输入流。原创 2023-05-10 12:06:51 · 255 阅读 · 1 评论 -
open_input_file打开输入文件
open_input_file打开输入文件原创 2023-05-10 12:06:53 · 7580 阅读 · 0 评论 -
parse_optgroup解析全局变量
parse_optgroup解析全局变量原创 2023-04-11 14:20:02 · 186 阅读 · 0 评论 -
split_commandline解析中间状态
split_commandline解析中间状态原创 2023-04-11 14:21:39 · 166 阅读 · 0 评论 -
FFmpeg编译参数分析
由于 configure 脚本的编译参数是非常多的,本文主要讲解一些比较常用的编译参数,一些特殊的编译参数,读者可通过以下命令查询。原创 2022-12-03 08:57:24 · 2470 阅读 · 0 评论 -
FFmpeg二次开发
本文主要讲解 FFmpeg 的二次开发,ffmpeg.exe 的命令行功能特别强大,很多需求都能直接用命令行实现,但是总有一些需求用 命令行实现不太好做。而你实现那些特殊需求,通常需要把 ffmpeg.exe 里面的某部分代码抄过来,本文讲的主要就是如何抄代码。原创 2022-12-03 08:53:49 · 4110 阅读 · 2 评论 -
FFmpeg的makefile逻辑分析
主要介绍编译生成 FFmpeg 静态库动态库的 makefile 规则,介绍 ffmpeg.exe ffplay.exe 如何生成的原创 2022-11-26 10:15:21 · 7060 阅读 · 1 评论 -
FifoBuffer函数库详解
FFmpeg 项目里面有一个 fifo 的实现 ,fifo 的全称是 first in first out (先进先出),而且这是一个环形的buffer内存管理器,代码实现在libavutil/fifo.h ,libavutil/fifo.c 里面原创 2022-11-08 23:08:43 · 1414 阅读 · 0 评论 -
FFmpeg内存对齐
为什么要做内存对齐呢?为了提高内存的访问效率,举个例子。因为某些32位的 CPU,每个总线周期都是从偶地址原创 2022-11-08 23:07:45 · 1467 阅读 · 0 评论 -
FFmpeg内存管理
FFmpeg 是一个 C程序的项目,C语言是需要手动管理内存的。内存管理有一个技巧,只要你分清楚这个变量是在栈上,还是在堆上的就可以了。在栈上的变量不需要手动释放,而在堆上的变量需要自己释放。原创 2022-11-08 23:02:27 · 1280 阅读 · 0 评论 -
FFmpeg内存IO模式
ffmpeg 支持从网络流 或者本地文件读取数据,然后拿去丢给解码器解码,但是有一种特殊情况,就是数据不是从网络来的,也不再本地文件里面,而是在某块内存里面的。这时候 av_read_frame() 函数怎样才能从内存把 AVPacket 读出来呢?原创 2022-11-08 23:01:37 · 1664 阅读 · 0 评论 -
avformat_seek_file函数介绍
在做音视频数据分析的时候,经常会遇到这样的需求,每隔5分钟抽取一帧数据进行分析。在做播放器开发的时候,也会遇到这种情况,就是拖动进度条跳转到某个位置进行播放。原创 2022-11-08 23:00:38 · 9917 阅读 · 4 评论 -
AVPixFmtDescriptor结构
AVPixFmtDescriptor 是 FFmpeg 里面描述像素格式具体信息的一个结构,这个结构其实非常常用,像素怎么存储,排列的,都描述在这个 AVPixFmtDescriptor 结构里面。原创 2022-10-14 11:57:47 · 4171 阅读 · 0 评论 -
AVOptions详解
在前面的文章 《如何设置解复用器参数》跟《如何设置编码器参数》中,我们学习了如何用 AVDictionary 来设置解复用器,编码器的参数。但是还有另一种方法也可以设置各种数据结构的参数,那就是用 AVOptions 的方式。原创 2022-10-14 11:56:42 · 2366 阅读 · 0 评论 -
AVString字符串函数库详解
FFmpeg 是一个 C语言的项目,C语言标准库的功能比较简陋,所以很多东西都要自己写,造轮子。FFmpeg 已经造了不少轮子,AVString 就是其中一个轮子,用 AVString 函数库,可以使字符串处理更加方便。原创 2022-10-11 08:13:27 · 1252 阅读 · 0 评论 -
FFmpeg的错误码
大部分开源项目都会封装一下错误码,FFmpeg 也不例外。FFmpeg 对 错误码 以及 相关的 API 函数 的定义是在 libavutil/error.h 里面的,如下:原创 2022-10-11 08:12:44 · 5668 阅读 · 2 评论 -
FFmpeg的日志函数av_log
FFmpeg 项目里面 输出日志信息的函数是 av_log,使用 av_log 函数可以在二次开发的时候,比较方便地做一些跟踪跟记录,可以把 av_log 作为 printf 函数的替代品。原创 2022-10-11 08:11:52 · 2024 阅读 · 3 评论 -
FFmpeg写入输出文件
本文介绍如何使用 FFmpeg 的 API 函数 avio_open2 打开一个输出文件,然后用 av_interleaved_write_frame 来把编码器输出的 AVPacket 保存进去文件。原创 2022-10-11 08:11:00 · 1353 阅读 · 0 评论 -
如何设置编码器参数
编码器 (encode)的参数也是分为 通用部分 跟 私有部分。通用部分是指大部分编码器都有的属性,例如码率就是通用的。原创 2022-10-11 08:10:00 · 4917 阅读 · 3 评论 -
如何使用FFmpeg的编码器
如何使用FFmpeg的编码器原创 2022-09-27 23:41:26 · 1260 阅读 · 1 评论 -
如何使用FFmpeg的解码器
如何使用FFmpeg的解码器原创 2022-09-27 23:40:21 · 2248 阅读 · 0 评论 -
FFmpeg读取文件内容AVPacket
FFmpeg读取文件内容AVPacket原创 2022-09-27 23:35:44 · 1765 阅读 · 0 评论 -
如何设置解复用器参数
解复用器 (demuxer)的参数 分为 通用部分 跟 私有部分。通用部分是指所有文件格式都有的属性,例如 formatprobesize 是 MP4 跟 FLV都有的属性。而 export_all 是只有 MP4 自己才有的属性。原创 2022-09-27 23:34:26 · 3877 阅读 · 6 评论 -
FFmpeg打开输入文件
本文介绍如何使用 FFmpeg 的 API 函数 avformat_open_input,avformat_find_stream_info 来打开跟获取一个输入文件的信息 (AVFormatContext )。原创 2022-09-27 23:32:01 · 3490 阅读 · 0 评论 -
FFmpeg实战之路
本章通过一些小的代码示例介绍 FFmpeg 里面一些基本常用的数据结构 跟 API 函数的使用。原创 2022-09-27 23:27:24 · 3276 阅读 · 0 评论
分享