首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
FFmpeg Principle
Loken1
创建于2022-05-25
订阅专栏
FFmpeg 全套学习资料
等 22 人订阅
共116篇文章
创建于2022-05-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
《FFmpeg原理》的创作之路
写作不是思考的记录,写作就是思考本身。—理查德·费曼 写作不仅仅是 学习的记录,还可以帮你进行系统的思考,有很多东西,会在你写作的过程中不断被深入。
FFmpeg转换器转码结束分析
ffmpeg.exe 转换器,在以下 3 种情况下会结束转码,或者结束转封装。 1,读取到了输入文件的结尾。 2,在命令行对输入文件使用了 -t 60 选项,限制只读取 60 秒的输入文件来处理,
FFmpeg转换器总结
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第33天,点击查看活动详情 ffmpeg.exe 转换器的编码封装的总函数就是 reap_filter()。 ffmpeg.exe
do_audio_out音频编码封装
相对于 《do_video_out视频编码封装》,《do_audio_out音频编码封装》 就显得非常简单,但是有些逻辑也是类似,例如 ost->sync_opts 的用法。
init_output_stream初始化输出流
init_output_stream() 是一个公共的函数,无论是音频,还是视频的输出流的初始化,都是通过它来完成的。
do_video_out视频编码封装
学习一个函数,第一步是看他里面的局部变量,理解了局部变量的用途,基本也就了解了函数的功能。 do_video_out() 函数的局部变量如下,(只选取一部分重点的局部变量做讲解)。
reap_filters收割滤镜
reap_filters() 会收割(reap)所有输出滤镜(buffer sink),从 buffer sink 读取到 AVFrame 之后,就会发送给编码器进行编码,如果编码器有 AVPacke
FFmpeg解码模块总结
ffmpeg.exe 里面解码,以及滤镜处理的相关文章都更新完毕,如下fmpeg.exe 转换编码格式,或者转换封装格式之前的操作,主要是一些初始化的操作。
configure_filtergraph配置滤镜容器
之前在 init_simple_filter() 里面已经对滤镜进行了基础的初始化,但是还有很多绑定关系没处理,avfilter_graph_config() 在 init_simple_filter
send_frame_to_filters滤镜处理
send_frame_to_filters() 函数会把 AVFrame 发送给输入流关联的所有入口滤镜进行处理。但是它的代码是比较简单的
decode_video解码视频帧
decode_video() 是解码视频帧的函数,只在 process_input_packet() 里面被调用,用 Call Hierarchy 查看,
process_input_packet解码封装
process_input_packet() 的主要功能是 解码第二个参数 const AVPacket *pkt,如果有解码数据出来,就发送给输入流关联的所有入口滤镜。
process_input处理输入文件
在刚开始的时候,滤镜容器都是未打开的状态,所以会从所有的输入流里面选出一个还未解码出来 AVFrame 的输入流,来进行处理
FFmpeg与FFplay解析命令行的区别
在前面的一章《FFplay播放器分析》,讲过 ffplay.exe 命令行参数的处理。 其实 ffmpeg.exe 跟 ffplay.exe 处理命令行参数是有相似的逻辑的。 ffmpeg.exe 跟
transcode_step转码总函数
transcode_step() 函数是 ffmpeg.exe 转换编码格式,或者转换封装格式的总函数,它在函数调用中的位置如下
transcode_init转码前的初始化
transcode_init() 函数是 ffmpeg.exe 转换编码格式,或者转换封装格式之前的操作,主要是一些初始化的操作。
命令行参数解析总结
到这里,ffmpeg.exe 命令行的命令参数,已经全部解析到 ffmpeg.c 里面的结构体里面了,我们用一条命令来演示整个解析的流程,
init_simple_filtergraph初始化简单滤镜
init_simple_filtergraph() 函数的代码比较简单,只有 20多行,就是一些申请内存,绑定赋值操作。 重要的是它里面使用到的数据结构,struct FilterGraph,
new_video_stream添加视频输出流
new_video_stream() 函数的流程相对来说比较简单,主要的逻辑如下: 1,调 new_output_stream() 函数来创建 OutputStream 输出流
OutputStream数据结构分析
struct OutputStream 是单个输出流的管理器。是由 new_video_stream() 或者 new_audio_stream() 函数申请内存,以及赋值 OutputStream
下一页