ffmpeg常用命令大全

一、视频处理

1.视频剪辑

ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4

这里的参数解释如下:

-i input.mp4 指定输入文件。

-ss 00:00:10 开始时间为10秒。

-t 00:00:30 剪辑时长为30秒。

-c copy 拷贝编码以避免重编码,加快处理速度。

output.mp4 是输出文件的名称。

2.视频合并

要使用FFmpeg合并视频,可以使用concat过滤器。首先,你需要创建一个文本文件,列出要合并的视频文件的路径,每行一个。例如,文件input.txt可能如下所示:

file 'video1.mp4'
file 'video2.mp4'
file 'video3.mp4'

然后,你可以使用以下FFmpeg命令合并这些视频:

ffmpeg -f concat -i input.txt -c copy output.mp4

这条命令会将input.txt文件中列出的所有视频合并成一个名为output.mp4的新文件。选项-c copy表示复制编码信息,以避免重新编码视频,从而节省时间和资源。

如果视频有不同的编码或者格式,你可能需要使用-c:v libx264(或其他适合输出的编码器)来确保输出文件的兼容性。

二、音视频处理

1.合并视频和音频(保留原视频声音)

ffmpeg -i input_video.mp4 -i input_audio.mp3 -c:v copy -c:a aac -strict experimental output_video.mp4

这里的参数解释如下:

-i input_video.mp4: 输入视频文件。

-i input_audio.mp3: 输入音频文件。

-c:v copy: 视频流不进行编码,直接复制。

-c:a aac: 将音频流编码为AAC格式。

-strict experimental: 设置为实验性模式,以支持不标准的编码设置。

output_video.mp4: 输出文件的名称。

2.合并视频和音频(不保留原视频声音)

ffmpeg -i input_video.mp4 -i new_audio.aac -c:v copy -map 0:v:0 -map 1:a:0 output_final_video.mp4

在这个命令中:

-i input_video.mp4 是你的原始视频文件。
-i new_audio.aac 是你要添加的新音频文件。
-c:v copy 表示视频流将被直接复制而不进行重新编码。
-map 0:v:0 选择第一个输入(这里是 input_video.mp4)的第一个视频流。
-map 1:a:0 选择第二个输入(这里是 new_audio.aac)的第一个音频流。

3.视频中提取音频文件

从视频中提取音频并保存为MP3格式。

ffmpeg -i input_video.mp4 -vn -acodec copy output_audio.mp3

这里的参数解释如下:

-i input_video.mp4 指定输入视频文件。

-vn 表示“无视频”,用于禁止输出视频。

-acodec copy 指示FFmpeg复制音频编解码器信息,这里如果是提取并保存为MP3格式,则不需要重新编码。

output_audio.mp3 是输出的音频文件。

4.从视频中移除原有声音

ffmpeg -i input_video.mp4 -c:v copy -an output_silent_video.mp4

这里的 -an 参数表示不处理音频流,从而创建了一个没有音频的输出视频文件output_silent_video.mp4。

三、视频参数转换

1.视频格式转换

将MP4视频转换为AVI格式。

ffmpeg -i input_video.mp4 output_video.avi

-i input_video.mp4 是源视频文件

output_video.avi 是要转换成的目标视频格式。

如果需要转换视频编码格式或者调整视频质量,可以指定特定的编解码器和参数,例如将H.264编码器用于MP4容器:

ffmpeg -i input.mp4 -codec: video libx264 -crf 20 output.mp4

-codec: video libx264 设置视频编解码器为H.264
-crf 后跟着一个常量质量评分(Constant Rate Factor, CRF),范围从0(无损)到51(最糟),通常使用18到28之间的值。

2.改变视频分辨率

将视频分辨率更改为1920x1080大小。

ffmpeg -i input.mp4 -s 1920x1080 output.mp4

3.压缩视频命令

ffmpeg -i input.mp4 -s 1280x720 -c:v libx264 -crf 24 output.mp4

这里的参数解释如下:

-i input.mp4:指定输入文件为input.mp4。
-s 1280x720:设置视频的分辨率为1280x720像素。
-c:v libx264:指定视频编码器为libx264,这是一个广泛使用的H.264编码器。
-crf 24:设置CRF(Constant Rate Factor)值为24。CRF是一个影响视频质量和文件大小的参数,值越低,视频质量越好,但文件大小也越大。
output.mp4:指定输出文件名为output.mp4。

四、视频和字幕、水印

1.合并视频和字幕文件(硬编码)

ffmpeg -i input.mp4 -vf subtitles=input.srt output_hardcoded.mp4

这里的参数解释如下:

-i input.mp4:指定输入文件为input.mp4,即要处理的视频文件。

-vf subtitles=input.srt:使用视频过滤器(-vf)将input.srt字幕文件硬编码到视频中。subtitles过滤器用于处理字幕,它可以将字幕文件的内容渲染到视频帧上。

output_hardcoded.mp4:指定输出文件名为output_hardcoded.mp4,即处理后的视频文件,其中包含了硬编码的字幕。

2.视频和水印

要在视频中使用FFmpeg添加水印,可以使用drawtext滤镜。以下是一个基本的命令行示例,它将在视频上添加一个文本水印:

ffmpeg -i input.mp4 -vf "drawtext=text='Watermark Text':fontsize=24:fontcolor=white:x=10:y=10" -codec:a copy output.mp4

这里的参数解释如下:

-i input.mp4 指定输入视频文件。

-vf 表示视频滤镜,后面跟着 drawtext 滤镜的参数。

text='Watermark Text' 是水印的文本内容。

fontsize=24 设置字体大小。

fontcolor=white 设置字体颜色。

x=10 和 y=10 分别表示水印文本在视频画面上的横纵坐标位置。

-codec:a copy 表示复制原视频的音频流。

output.mp4 是输出文件的名称。

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

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

相关文章

Vulkan 学习(9)---- vkSuraceKHR 创建

目录 OverView创建窗口表面参考代码 OverView Vulkan 是一个平台无关的图形API,这意味着它不能直接与特定的窗口系统(Windows,linux 和 macOS 的窗口系统)进行交互 为了解决这个问题,Vulkan 引入了窗口系统集成(Window System Intergration …

DOM【JavaScript】

在JavaScript中,DOM (Document Object Model:文档对象模型) 是web页面的编程接口,用于表示和操作 HTML 和 XML 文档。它将文档结构化为一个树形结构,允许开发者通过 JavaScript 访问和修改网页的内容、结构和样式。以下是一些关于…

基于单片机的智能校园照明系统

由于校园用电量较大,本设计可以根据实际环境情况的改变,实现实时照明的控制。本设计以单片机芯片为控制芯片,热释电传感器采集教室中学生出入的信息,并把信息传递给单片机芯片,单片机芯片根据传感器传递过来的信息来控…

【软件测试】Bug 篇

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 今天给大家带来的是 【软件测试】Bug 篇,首先了解, 什么是Bug, 如何定义一个Bug, 如何描述一个 Bug, Bug的级别, 和 Bug 的生命周期, 以及测试人员跟开发人员产生争执如何处理,…

【MYSQL】聚合查询、分组查询、联合查询

目录 聚合查询聚合函数count()sum()avg()max()和min()总结 分组查询group by 子句having 子句 联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询 合并查询 聚合查询 聚合查询就是针对表中行与行之间的查询。 聚合函数 count() count(列名)&a…

个人随想-代码生成工具v0+claude+cursor

cursor出来已经有一段时间了,不知道大家用了感觉怎么样。今天就以我个人为例,给大家介绍一下我是如何使用cursor搭建原型。 首先,我并不觉得cursor对于后端程序员带来了革命性改进,我们与很多团队沟,使用cursor80%以上…

spring中的容器接口的实现类和功能

容器实现 BeanFactory 实现 这里我们就来一步步实现BeanFactory的功能。 首先创建我们需要的类 Configuration static class Config{Beanpublic Bean1 bean1(){return new Bean1();}Beanpublic Bean2 bean2(){return new Bean2();}}static class Bean1{private static fina…

【Linux】Shell 编程规范及检查工具推荐

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…

【RH124】解释Linux文件系统权限

RH124教材中控制对文件的访问一章中有一道解释Linux文件系统权限的测验题,可以一起来看看: 一、权限解释 这是通过 ls -l 命令查看的结果。它显示了文件或目录的权限、拥有者、所属组等信息。 1、长列表的第一个字符表示文件类型: -是常…

【C语言零基础入门篇 - 16】:栈和队列

文章目录 栈和队列栈栈功能的实现源代码 队列队列功能的实现源代码 栈和队列 栈 什么是栈:功能受限的线性数据结构 栈的特点:先进后出 。例如:仓库进货、出货。 栈只有一个开口,先进去的数据在栈底(bottom&#xf…

STM32篇:STM32CubeMX的安装

一.介绍与安装 1.作用 通过界面的方式,快速生成工程文件。 2.下载 官网 https://www.st.com/zh/development-tools/stm32cubemx.html#overview 3.安装 一路下一步,建议不要安装在C盘 4.配置 更新固件包位置(比较大,默认在…

LeetCode 257. 二叉树的所有路径(回溯详解)

文章目录 LeetCode 257. 二叉树的所有路径思路递归版本一:非常明确的回溯代码版本二:精简的回溯代码 LeetCode 257. 二叉树的所有路径 LeetCode 257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节…

全网最适合入门的面向对象编程教程:51 Python函数方法与接口-使用Zope实现接口

全网最适合入门的面向对象编程教程:51 Python 函数方法与接口-使用 Zope 实现接口 摘要: 在 Python 中,Zope 提供了一种机制来定义和实现接口。Zope 的接口模块通常用于创建可重用的组件,并确保组件遵循特定的接口规范。 原文链…

力扣 209.长度最小的子数组

一、长度最小的子数组 二、解题思路 采用滑动窗口的思路&#xff0c;详细见代码。 三、代码 class Solution {public int minSubArrayLen(int target, int[] nums) {int n nums.length, left 0, right 0, sum 0;int ans n 1; for (right 0; right < n; right ) { …

【二等奖论文】2024年华为杯研赛D题成品论文(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接获取【2024华为杯研赛资料汇总】&#xff1a; https://qm.qq.com/q/jTIeGzwkSchttps://qm.qq.com/q/jTIeGzwkSc 题 目&#xff1a; 大数据驱动的…

一劳永逸:用脚本实现夸克网盘内容自动更新

系统环境&#xff1a;debian/ubuntu 、 安装了python3 原作者项目&#xff1a;https://github.com/Cp0204/quark-auto-save 感谢 缘起 我喜欢看电影追剧&#xff0c;会经常转存一些资源到夸克网盘&#xff0c;电影还好&#xff0c;如果是电视剧&#xff0c;麻烦就来了。 对于一…

深度学习-卷积神经网络(CNN)

文章目录 一、网络构造1. 卷积层&#xff08;Convolutional Layer&#xff09;&#xff08;1&#xff09;卷积&#xff08;2&#xff09;特征图计算公式&#xff08;3&#xff09;三通道卷积 2. 激活函数&#xff08;Activation Function&#xff09;3. 池化层&#xff08;Pool…

【JUC并发编程系列】深入理解Java并发机制:线程局部变量的奥秘与最佳实践(五、ThreadLocal原理、对象之间的引用)

文章目录 【JUC并发编程系列】深入理解Java并发机制&#xff1a;线程局部变量的奥秘与最佳实践(五、ThreadLocal原理、对象之间的引用)1. 基本 API 介绍2. 简单用法3. 应用场景4. Threadlocal与Synchronized区别5. 内存溢出和内存泄漏5.2 内存溢出 (Memory Overflow)5.2 内存泄…

全栈项目小组【算法赛】题目及解题

题目&#xff1a;全栈项目小组【算法赛】 题目&#xff1a; 解题思路 1.遍历简历信息&#xff1a;我们需要读取所有简历&#xff0c;根据期望薪资和岗位类型进行分类和统计。 2.分类统计&#xff1a;使用哈希表来存储每个薪资下的前端&#xff08;F&#xff09;和后端&#…

【线程】线程的同步

本文重点&#xff1a;理解条件变量和生产者消费者模型 同步是在保证数据安全的情况下&#xff0c;让我们的线程访问资源具有一定的顺序性 条件变量cond 当一个线程互斥地访问某个变量时&#xff0c;它可能发现在其它线程改变状态之前&#xff0c;它什么也做不了&#xff0c;…