ffmpeg命令(详解)

news2024/9/19 10:41:50

在这里插入图片描述

欢迎诸位来阅读在下的博文~
在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力

文章目录

  • 一、常见命令
  • 二、实战
  • 三、总结

一、常见命令

ffmpeg -i input.mp4 -c copy output.mp4
  • 解释:-i 后面接输入文件的路径位置,-c 是所有流的编解码器,-c copy代表所有流的编解码器从输入文件复制过去。
ffmpeg -i input.mp4 -ss 00:00:07 -to 00:00:15 -c copy output.mp4
  • 解释: -ss 和 -to 后面接时间戳或者时间码,代表开始和结束。例中代表第7秒开始到第15秒结束,也就是截取一段音视频。
ffmpeg -i vinput.mp4 -i ainput.aac -vcodec copy -acodec aac output.mp4
  • 注释:将一个视频文件和一个音频文件合在一起,其中 -vcodec 代表视频编码,-acodec 代表音频解码,后面接copy代表从输入文件中复制编解码器,也可以使用名字指定一个。
  • -vcodec 等价于 -c:v , -acodec 等价于 -c:a 。
  • 还有类似的:-c:s 字幕流,-c:d 数据流。
ffmpeg -i input.mp4 -c copy -an output.mp4
  • 注释:剥离音频流。-an代表不处理音频,还有 -vn 代表不处理视频。
ffmpeg -f concat -i input_list.txt -c copy output.mp4
//input_list.txt内容如下:
file 'input1.mp4'
file 'input2.mp4'
  • 注释:-f 代表指定输入或输出文件的格式,concat代表融合,这里用来修饰输入文件,表示输入文件里面有多个文件需要融合。
ffmpeg -f h264 -i input.h264 -c:v copy output.mp4
  • 注释:指定输入文件是H.264格式。
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.yuv
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpg
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.png
  • 注释:截取输入视频的某一帧,输出为相应格式的图片。
ffmpeg -i input.mp4 -pix_fmt yuvj420p -vframes 1 output.jpg
  • 注释:-pix_fmt 用于转换输入文件的像素格式,以完成色彩空间的装换。
ffmpeg -i input.mp4 -vf "select='gte(n\,10)*lte(n\,100)',setpts=PTS-STARTPTS" 
-vsync vfr output.gif
  • 注释:-vf 代表指定视频流滤镜,后面接滤镜描述字符串。例子中描述字符串的意思是从第10帧到第100帧截取视频,并且修改好时间戳。-vsync vfr 使用可变帧率确保帧不会重复或丢失。命令的结果是输出一张动态图。
  • -vf 指定视频流滤镜 ; -af 指定音频流滤镜; -filter_complex 指定多流滤镜

二、实战

给两张图片,一张是.jpg图片,一张是.png图片。要求把两张图片融合变成视频,每张图片播放3秒。
思路一:先将两张图片分别编码成视频,然后再将两个视频融合。

ffmpeg -f image2 -loop 1 -i input1.jpg -c:v h264 -pix_fmt yuv420p -r 25 -t 3 output1.mp4
ffmpeg -f image2 -loop 1 -i input2.png -c:v h264 -pix_fmt yuv420p -r 25 -t 3 output2.mp4
ffmpeg -f concat -i image_list.txt -c copy ff_merge_image.mp4
// image_list.txt:
file 'output1.mp4'
file 'output2.mp4'
  • 注释:-loop 表示循环处理一个源文件,-r 25 表示输出视频每秒25帧,-t 3 表示输出视频时长3秒。

思路二:使用多流滤镜,对两张图片一块处理

ffmpeg -loop 1 -t 3 -i input1.jpg -loop 1 -t 3 -i input2.png 
-filter_complex "[0:v][1:v]concat=n=2:v=1:a=0" -y output.mp4
  • 注释:[0:v] 是指将输入文件1转换成下标为0的视频流,[1:v] 同理,后面 concat指使用concat滤镜,滤镜后面使用 = 承接后来的滤镜参数,比如例子中n=2是指一共两路流。多个滤镜参数之间使用:隔开,例子中v=1是指输出为一路视频流,a=0是指没有音频流。-y 这个参数表示在输出文件已经存在时覆盖它,而不提示用户确认。

三、总结

诸位可以发现,ffmpeg的命令非常灵活多变,使用不同的思路也可以得出同一结果,但是大体的框架如下:

ffmpeg [输入文件的参数] -i [输入文件的位置]  //输入处理
(-vf/af/filter_complex [滤镜描述字符串])   //中间滤镜加工(可选)
[输出文件的参数] [输出文件的位置]			 //输出处理

在变中把握不变,是一切学习的真谛,或许有更好的框架,欢迎各位在评论区留言,在下不胜感激~

至此,结束~
在这里插入图片描述
望诸位不忘三连支持一下~

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

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

相关文章

应用在蓝牙耳机中的低功耗DSP音频处理芯片-DU561

在当今社会,随着科技的不断发展,人们对于电子产品的需求也在日益增长。蓝牙耳机就是将蓝牙技术应用在免持耳机上,让使用者可以免除恼人电线的牵绊,自在地以各种方式轻松通话。自从蓝牙耳机问世以来,一直是行动商务族提…

【递归、回溯专题(二)】DFS解决floodfill算法

文章目录 1. 图像渲染2. 岛屿数量3. 岛屿的最大面积4. 被围绕的区域5. 太平洋大西洋水流问题6. 扫雷游戏7. 机器人的运动范围 1. 图像渲染 算法原理: 这题不需要创建visit数组去记录使用过的节点,因为我每次dfs都尝试修改image数组的值,当下…

[Linux]:权限

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. Linux权限的基本概念 1.1 root与普通用户 在Linux系统中,存在…

内部知识库:企业智慧资产的安全守护者

引言 在知识经济时代,企业的核心竞争力越来越依赖于其知识资源的积累、管理和利用。内部知识库,作为企业知识管理的重要组成部分,扮演着智慧资产守护者的关键角色。它不仅承载着企业多年来的经验积累、技术创新和业务流程知识,还…

2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web数据安全AI 题解WriteUp

文章首发于【先知社区】:https://xz.aliyun.com/t/15442 Lyrics For You 题目描述:I have wrote some lyrics for you… 开题。 看一下前端源码,猜测有路径穿越漏洞 http://139.155.126.78:35502/lyrics?lyrics../../../../../etc/passw…

中国同一带一路沿线国海关货物进出口额表(年)1994-2022进出口总额进口总额出口总额

数据来源:基于相关(证券、货币、期货等)交易所、各部委、省、市、区县统计NJ、或各地区公布的数据(若是全球各国数据,主要来源于世界银行世界发展指标WDI、或联合国统计数据) 数据范围:&#x…

安装Android Studio及第一个Android工程可能遇到的问题

Android Studio版本众多,电脑操作系统、电脑型号、电脑硬件也是多种多样,幸运的半个小时内可以完成安装,碰到不兼容的电脑,一天甚至更长时间都无法安装成功。 Android安装及第一个Android工程分为4个步骤,为什么放到一…

E31.【C语言】练习:指针运算习题集(上)

Exercise 1 求下列代码的运行结果 #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d",*(ptr - 1));return 0; } 答案速查: 分析&#xff1a; Exercise 2 求下列代码的运行结果 //在x86环境下 //假设结…

使用Ansible stat模块检查目录是否存在

使用Ansible stat模块检查目录是否存在或者是否为一个目录还是文件 理论知识 在Ansible中&#xff0c;你可以使用stat模块来检查一个目录是否存在。stat模块可以用来获取文件或目录的状态信息&#xff0c;包括它是否存在。下面是一个简单的例子&#xff0c;说明如何使用stat模…

9/3作业

一、继承&#xff08;inhert&#xff09; 面向对象三大特征&#xff1a;封装、继承、多态 继承&#xff1a;所谓继承&#xff0c;是类与类之间的关系。就是基于一个已有的类&#xff0c;来创建出一个新类的过程叫做继承。主要提高代码的复用性。 1.1 继承的作用 1> 实现…

GraphRAG工程落地成本详细解读和实例分析

最近半年GraphRAG引起不少关注&#xff0c;。GraphRAG代表了一种创新的方法&#xff0c;用于支持检索增强生成&#xff08;RAG&#xff09;应用&#xff0c;使组织能够从其复杂的数据集中提取前所未有的价值。然而&#xff0c;与大多数组织使用的相对简单的数据嵌入和向量化过程…

mkv怎么转换成mp4?2个简单易用的格式转换方法

小王立志成为一名vlogger&#xff0c;为此&#xff0c;他在旅行的时候拍摄了一段旅游视频&#xff0c;把视频保存在mkv格式中。在平台上传时小王才发现mkv视频不被平台支持。 小王傻眼了&#xff0c;视频需要把mkv转换成mp4格式才能发布&#xff0c;但mkv怎么转换成mp4&#x…

Socket编程---TCP篇

目录 一. TCP协议 二. 服务端模块代码实现 三. 服务端调用模块代码实现 四. 客户端模块代码实现 五. 初始版本结果展示 六. 多进程版服务端 七. 多线程版服务端 八. 线程池版服务端 前文已经讲了UDP的知识&#xff08;点此查看&#xff09;。今天来讲讲…

探索AWS EC2:云计算的强大引擎

在数字化转型的浪潮中&#xff0c;企业对计算资源的需求不断增长。亚马逊弹性计算云&#xff08;EC2&#xff09;作为AWS&#xff08;亚马逊网络服务&#xff09;的核心产品之一&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了全球企业构建和扩展应用的首选平台。无论…

K8S - 外部访问集群

前言 文档可以承接前面的内容看 这里只做外部访问的介绍 正文 kubectl get po#打印某个pod的环境变量 kubectl exec nginx-7c5ddbdf54-6nfw2 \-- printenv |grep KUBERNETES#删除 service kubectl get svc kubectl delete svc nginx#使用 LoadBalancer 的方式重新创建 servi…

Etherpad在线文档协作编辑工具

Etherpad在线文档协作编辑工具 一、前言 Etherpad是一种开源的实时协作编辑器&#xff0c;允许多个用户同时编辑同一文档&#xff0c;并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发&#xff0c;后来被Google收购&#xff0c;现在由Apache软件基金会维护。E…

ElasticSearch-集群架构

核心概念 节点类型分片集群搭建 ES安全认证 集群内部安全通信 生产环境常见集群部署方式 单一角色增加节点水平扩展读写分离架构异地多活架构Hot & Warm 架构集群容量规划 产品信息库搜索时间序列的数据 核心概念 ES集群架构的优势 提高系统的可用性&#xff0c;部分节点…

【QT】学习笔记:枚举桌面窗口句柄

在 Qt 中&#xff0c;虽然 Qt 本身没有直接提供枚举桌面窗口的 API&#xff0c;但可以通过调用 Windows API 来实现枚举桌面上所有窗口的句柄&#xff0c;包括子窗口以及子窗口与父窗口的关系。我们可以使用 Windows 的 EnumWindows 和 EnumChildWindows 函数来枚举所有顶层窗口…

C语言指针进阶三:(回调函数,qsort函数的模拟)

回调函数 回调函数就是通过函数指针调用的函数&#xff0c;如果你把函数的指针作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其指向的函数时&#xff0c;我们所说这就是回调函数。 qsort函数的使用&#xff08;回调函数案例&#xff09; 我们先看看qsort函数的…

【单调栈 】2289. 使数组按非递减顺序排列

本文涉及的基础知识点 单调栈分类、封装和总结 LeetCode2289. 使数组按非递减顺序排列 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;移除所有满足 nums[i - 1] > nums[i] 的 nums[i] &#xff0c;其中 0 < i < nums.length 。 重复执行步骤&a…