FFmpeg的流程

文章目录

  • 前序
  • 代码结构
  • FFmpeg.c
  • ffmpeg_opt.c
  • 小结

前序

之前看过FFmpeg的各种命令,然后不是很理解。相信很多人都不是很理解,毕竟,单纯的去记住那些命令行本身就需要很大的内存,我们的大脑内存又有限,所以,还是去看下代码。既辅助大脑去理解那些命令行,又提升了自己的代码理解能力,的确是一件有意义的事情。这次,就简单看下流程。

代码结构

在这里插入图片描述
先看下上图,主要是讲解FFmpeg_opt.c这个代码流程。至于FFmpeg.c,这个文件,太多意义了。可以简单看下。

FFmpeg.c

看这个c文件,先找main函数。代码流程如下:
在这里插入图片描述
main函数,就这么多行,再看看这个文件,已经4900多行了,还没有完。这次别的不看,直接看ffmpeg_parse_options函数,也就是解析命令行,像我们输入的命令,都在着函数里。接下来看看。

ffmpeg_opt.c

还是先看看ffmpeg_parse_options函数,如下图:
在这里插入图片描述
虽然看着这么多行,内容居多。先看下主要流程,如下图:
在这里插入图片描述
解析一个-vcodec代码流程。如上图。

在这里插入图片描述
所有的命令行,都在这里,名字,对应的函数,都在。有点像lua里边的c代码格式,看过的都应该不陌生,没看过也不要紧,有需要,可以去看看,也可以去看看我之前写的文章。打住了。继续看看流程。输入函数的流程,输出函数的流程。

在这里插入图片描述
这个是open_output_file的流程,然后还有一个open_input_file的流程。看下我画的流程图吧,如下:
在这里插入图片描述
这个代码相对来说比较少,从逻辑上理解,属于输入,是大部分输入的存储,方便后边输出的时候处理。

小结

这次写了FFmpeg的大致流程,如果详细了解,还需要结合代码去学习,当然,也可以去学习学习。毕竟,有些东西是整理好的,还有些指导,也还不错。不过,还是要自己耐心去学习,去理解。OK,结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java “错误:编码GBK 的不可映射字符”

环境:JDK-17 本机编码:utf-8 代码编码:GBK 错误:java “错误:编码GBK 的不可映射字符” 解决1:记事本打开java源文件,另存为选择ANSI编码 解决2:复制代码再将编码格式改为utf-8,…

java欢迪迈手机商城设计与实现源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的欢迪迈手机商城设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 欢迪迈手机商城…

spring状态机实战

一、什么是状态机 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型,是一种概念性机器,它能采取某种操作来响应一个外部事件。这种操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。状态…

不同网段的通信过程

这里的AA和HH指的是mac地址,上面画的是路由器 底下的这个pc1,或者其他的连接在这里的pc,他们的默认网关就是路由器的这个192.168.1.1/24这个接口 来看看通信的过程 1、先判断(和之前一样) 2、去查默认网关&#xf…

基于SpringBoot和Hutool工具包实现的验证码案例

目录 验证码案例 1. 需求 2. 准备工作 3. 约定前后端交互接口 需求分析 接口定义 4. Hutool 工具介绍 5. 实现验证码 后端代码 前端代码 6. 运行测试 验证码案例 随着安全性的要求越来越高,目前项目中很多都会使用验证码,只要涉及到登录&…

Liunx系统中修改文件的创建时间以及访问时间

在Linux系统中,可以使用touch命令来修改文件的时间戳。以下是一些常用的touch命令选项: (其实在MacOS中也适用) 修改访问时间(Access Time)和修改时间(Modification Time)&#xf…

Celery的Web监控工具Flower

1 简介Flower Flower官网 Flower是一个WEB端的监控工具,可以监控Celery的消费者。但是WEB端的监控对于监控系统来说,有个屁用,有用的是监控告警。还好Flower不是全部是垃圾,它提供的Prometheus的监控端点。然而。。。。。如何保证…

CorelCAD v2022.5 解锁版 安装教程(2D制图 3D设计和打印的简化软件)

前言 CorelCAD,加拿大Corel公司开发的一款适用于2D制图、3D设计和打印的简化版CAD软件。它是款专业的2D制图和3D设计软件,拥有行业标准文件兼容性,支持 .DWG、.STL、.PDF、 .CDR*等文件格式,轻松实现协作和项目共享,利…

学 Go 具体能干什么?

学习 Go (Golang) 后,你可以从事许多不同的工作和项目,Go 语言以其高性能、并发处理和简洁的语法而闻名,特别适合以下几个领域: 1. 后端开发 Go 在后端开发中非常流行,特别适合构建高性能的 Web 服务和 API。 Web 框…

【机器学习】基于核的机器学习算法(Kernel-based Algorithms):原理,应用与优化

👀传送门👀 文章引言🔍🍀核函数的概念🚀基于核的算法原理💖基于核的算法应用🐟支持向量机(SVM)📕核主成分分析(KPCA) 🍀未…

大数据信用报告查询有哪些作用?哪个平台更好?

大数据信用是基于大数据技术,通过大数据系统生成的大数据信用报告,报告收集了查询人在非银环境下的申贷数据以及履约行为和信用风险的综合性报告。很多人都会问,大数据信用报告查询有哪些作用?哪个查询平台更好的疑问,下文就详细…

C++STL---string知识汇总

前言 我们现在开始CSTL的学习,从这时开始我们就要锻炼自己查看英文文档的能力,每种数据结构都有上百个接口函数,我们把他们全部记下来是不可能的,所以我们只记最常见的20几个接口,其他的大概熟悉有什么功能&#xff0…

深入JVM元空间以及弹性伸缩机制

个人博客 深入JVM元空间以及弹性伸缩机制 | iwts’s blog JVM内存模型中元空间所在位置 即在JVM运行时的内存模型。总体上有这样的图: 元空间 上面的图其实有点不太准。方法区本质上只是JVM的一个标准,不同JVM在不同版本下都可能有不同的实现&#x…

Matlab中函数或变量 ‘eeglab‘ 无法识别

EEGLAB 没有安装或添加到 MATLAB 路径中: 确保已经安装了 EEGLAB,并且将其添加到 MATLAB 的路径中。您可以通过在 MATLAB 命令窗口中运行 which eeglab 来检查是否能够找到 EEGLAB。 EEGLAB 函数路径设置错误: 如果已经安装了 EEGLAB&#x…

可以免费试用得微信辅助工具wetool升级版,可以群发,可以清理僵尸粉,可以自动回复,可以批量添加

今天给大家推荐一款我们目前在使用的电脑群发工具掘金小蜜,不仅可以无限多开,方便你同时管理多个账号,群发功能更是十分强大,轻松释放你的双手。 掘金小蜜(只支持Win7及以上操作系统,没有推Mac版和手机客户…

【知识拓展】LocalTunnel-高性价比的内网穿透工具(2)

前言 上一篇通过ngrok进行内网穿透,有几个问题: ①需要注册,而且注册需要科学上网,相对麻烦 ②安装配置相对麻烦,authtoekn有限制 上述相对,指的是在非生产环境中做一个简单内网穿透,相对于…

neo4j开放远程连接

注:本博客所用neo4j版本为社区5.12版 第一步:修改neo4j配置文件 首先找到neo4j的安装位置,点击进入conf文件夹,随后点击neo4j.conf文件,在“Network connector configuration”下面的单元中找到server.default_liste…

汽车IVI中控开发入门及进阶(二十):显示技术之LCDC

TFT LCD=Thin Film Transistor Liquid Crystal Display LCDC=LCD Controller 薄膜晶体管液晶显示器(TFT LCD)控制器在驱动现代显示技术的功能和性能方面起着关键作用。它们充当屏幕后面的大脑,仔细处理数字信号,并将其转化为精确的命令,决定每个像素的行为,决定它们的…

计算机网络基本概念

文章目录 情景带入一些基本概念网络网络编程:7层网络模型OSI:TCP/IP Protocol Architecture Layers与OSI的对应关系SocketClient-Server Application报文段:传输协议:Mac地址IP地址端口URL 情景带入 随着时代的发展,我…

STM32—HAL-PWM-舵机180(每个频率对应每个角度)

1开启时钟 2开启定时器和通道设置为PWM模式 3将定时时间设置为50Hz(20ms)//每25为1ms 4代码编写 4.1开启PWM 4.2改PWM的占空比 4.3效果0~180度在0度 源码 /* USER CODE BEGIN Header */ /******************************************************************************…