ffmpeg常用命令及介绍

devtools/2025/1/12 17:11:24/

FFmpeg 是一个非常强大的多媒体处理工具,可以用来进行视频和音频的转换、剪辑、合并、提取等多种操作。以下是一些常用的 FFmpeg 命令及其功能介绍:

1. 基本命令结构

FFmpeg 的基本命令结构如下:

ffmpeg [全局选项] [输入文件选项] -i 输入文件 [输出文件选项] 输出文件

2. 常用命令

2.1 查看媒体文件信息

使用 ffprobeffmpeg -i 查看媒体文件的详细信息。

ffprobe -i input.mp4

ffmpeg -i input.mp4
2.2 视频格式转换

将一个视频文件从一种格式转换为另一种格式。

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
2.3 音频格式转换

将一个音频文件从一种格式转换为另一种格式。

ffmpeg -i input.wav -c:a libmp3lame output.mp3
2.4 提取音频

从视频文件中提取音频并保存为单独的音频文件。

ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
2.5 提取视频

从视频文件中提取视频流(无音频)。

ffmpeg -i input.mp4 -c copy -an output.mp4
2.6 裁剪视频

裁剪视频的指定时间段。

ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c copy output.mp4
2.7 合并视频

将多个视频文件合并为一个文件。

ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4

或者使用 concat 文件列表:

echo "file 'input1.mp4'" > filelist.txt echo "file 'input2.mp4'" >> filelist.txt ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
2.8 调整分辨率

将视频文件调整为指定的分辨率。

ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
2.9 调整比特率

设置视频和音频的比特率。

ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4
2.10 添加水印

在视频上添加水印。

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
2.11 旋转视频

旋转视频 90 度。

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
2.12 截取视频帧

从视频中截取一帧图像。

ffmpeg -i input.mp4 -ss 00:00:01 -vframes 1 output.jpg
2.13 更改帧率

更改视频的帧率。

ffmpeg -i input.mp4 -r 30 output.mp4
2.14 更改音频采样率

更改音频的采样率。

ffmpeg -i input.mp3 -ar 44100 output.mp3
2.15 更改音频声道数

更改音频的声道数。

ffmpeg -i input.mp3 -ac 2 output.mp3
2.16 静音或删除音频

删除视频中的音频。

ffmpeg -i input.mp4 -c copy -an output.mp4
2.17 添加音频到视频

将音频文件添加到视频文件中。

ffmpeg -i input.mp4 -i audio.mp3 -c copy -shortest output.mp4
2.18 生成缩略图

生成视频的缩略图。

ffmpeg -i input.mp4 -vf fps=1/60 thumbnails_%03d.jpg

3. ffmpeg的filter使用方式

3.1常用filter

3.1.1 缩放 (scale)

调整视频的分辨率。

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
3.1.2 裁剪 (crop)

裁剪视频的一部分。

ffmpeg -i input.mp4 -vf "crop=640:360:0:0" output.mp4
  • crop=out_w:out_h:x:y:其中 out_w 和 out_h 是输出宽度和高度,x 和 y 是裁剪区域的起始坐标。
3.1.3 叠加 (overlay)

在视频上叠加另一个视频或图像。ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4

  • overlay=x:y:其中 x 和 y 是叠加位置的坐标。
3.1.4 旋转 (transpose)

旋转视频。

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
  • transpose=1:顺时针旋转90度。
  • transpose=2:逆时针旋转90度。
  • transpose=3:顺时针旋转90度并垂直翻转。
  • transpose=4:逆时针旋转90度并垂直翻转。
3.1.5 淡入淡出 (fade)

添加淡入淡出效果。

ffmpeg -i input.mp4 -vf "fade=t=in:st=0:d=1,fade=t=out:st=59:d=1" -c:a copy output.mp4
  • fade=t=in:st=0:d=1:从第0秒开始,持续1秒的淡入效果。
  • fade=t=out:st=59:d=1:从第59秒开始,持续1秒的淡出效果。
3.1.6 颜色调整 (eq)

调整视频的颜色、亮度、对比度等。

ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.5:saturation=1.2" output.mp4
  • brightness:亮度。
  • contrast:对比度。
  • saturation:饱和度。
3.1.7 模糊 (gblur)

添加高斯模糊效果。

ffmpeg -i input.mp4 -vf "gblur=sigma=5" output.mp4
  • sigma:控制模糊程度。
3.1.8 抽取帧 (select)

抽取特定条件的帧。

ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)',setpts=N/FRAME_RATE/TB" -vsync vfr output_%d.jpg
  • select='gt(scene,0.4)':选择场景变化大于0.4的帧。
  • setpts=N/FRAME_RATE/TB:重新设置时间戳。
  • -vsync vfr:保持原始帧率。

3.2 常用音频滤镜

3.2.1 音量调整 (volume)

调整音频的音量。

ffmpeg -i input.mp3 -af "volume=0.5" output.mp3
  • volume=0.5:将音量降低到50%。
3.2.2 均衡器 (equalizer)

调整音频的频率响应。

ffmpeg -i input.mp3 -af "equalizer=f=1000:t=h:width_type=o:width=2:g=10" output.mp3
  • f=1000:中心频率为1000 Hz。
  • t=h:类型为高通。
  • width_type=o:带宽类型为八度。
  • width=2:带宽为2个八度。
  • g=10:增益为10 dB。
3.2.3 混响 (aecho)

添加混响效果。

ffmpeg -i input.mp3 -af "aecho=0.8:0.88:60:0.4" output.mp3
  • aecho=in_gain:out_gain:delays:decays:分别控制输入增益、输出增益、延迟时间和衰减系数。
3.2.4 动态范围压缩 (compand)

压缩音频的动态范围。

ffmpeg -i input.mp3 -af "compand=attacks=0:points=-80/-80|-40/-40|0/-30|20/-20|40/-20|60/-20|80/-20:gain=10" output.mp3
  • attacks=0:攻击时间为0。
  • points:定义压缩点。
  • gain=10:增益为10 dB。

3.3. 复杂滤镜链

多个滤镜可以组合成一个复杂的滤镜链。

ffmpeg -i input.mp4 -vf "scale=1280:720,crop=1000:1000:100:100,transpose=1,fade=t=in:st=0:d=1,fade=t=out:st=59:d=1" -c:a copy output.mp4

3.4. 使用 filter_complex

对于更复杂的操作,可以使用 filter_complex 选项。

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v][1:v]overlay=10:10,format=yuv420p[v]; [0:a]volume=0.8[a]" -map "[v]" -map "[a]" output.mp4
  • [0:v] 和 [1:v] 分别表示第一个和第二个输入文件的视频流。
  • [0:a] 表示第一个输入文件的音频流。
  • overlay=10:10 将水印叠加在视频上。
  • format=yuv420p 确保输出格式兼容性。
  • volume=0.8 调整音频音量。

4. 总结

FFmpeg 是一个极其强大的工具,适用于各种音视频处理任务。通过上述命令,你可以完成大多数常见的音视频处理需求。如果你有更具体的需求或遇到问题,可以通过查阅 FFmpeg 的官方文档或社区资源来获取更多信息。


http://www.ppmy.cn/devtools/149926.html

相关文章

北航:将LLM的注意力从MHA转为GQA

📖标题:Align Attention Heads Before Merging Them: An Effective Way for Converting MHA to GQA 🌐来源:arXiv, 2412.20677 🌟摘要 🔸大型语言模型已被证明在各种自然语言处理问题上表现良好。然而&am…

Python中如何使用正则表达式进行字符串匹配和替换?

在Python中,正则表达式是一种强大的工具,用于处理字符串的搜索、替换和分割等操作。Python的re模块提供了丰富的函数来支持这些功能。下面将详细介绍如何使用正则表达式进行字符串匹配和替换,并给出具体的示例。 1. 导入re模块 首先&#x…

PyCharm文档管理

背景:使用PyCharmgit做文档管理 需求:需要PyCharm自动识别docx/xslx/vsdx等文件类型,并在PyCharm内点击文档时唤起系统内关联应用(如word、excel、visio) 设置步骤: 1、file -》 settings -》file types 2、在Files opened i…

Vulnhub-Red靶机笔记

Red靶机笔记 概述 这台靶机主要练习了文件包含漏洞的利用过程,以及hashcat利用规则生成字典来爆破ssh,利用进程监听修改root自执行程序来拿到root权限的shell 靶机地址:https://www.vulnhub.com/entry/red-1,753/ 一、nmap扫描 1、端口扫…

pip工具安装第三方库

使用pipcmd引入第三方库 pip 是 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。 注意:pip 已内置于 Python 3.4 和 2.7 及以上版本,其他版本需另行安装 常规命令: pip install 安装第三方库的库名 &…

BaseCTF scxml 详解

视频教程在我主页简介和专栏里 目录: 环境搭建 jadx 反编译 本题环境搭建 题目分析 番外 环境搭建,给的附件中就一个 Main.java 和四个 jar 包,借由这道题简单讲讲一般 CTFJAVA 题目的环境搭建 环境搭建 jadx 反编译 之前前面看的几道题由…

PySpark学习笔记4-共享变量,内核调度

共享变量 解决方案一-广播变量 将本地列表标记成广播变量 可以实现降低内存占用和减少网络IO传输,提高性能 boradcast sc.boardcast(stu_info_list) value broadcast.value解决方案二-累加器 acmlt sc.accumulator(0)可以收集执行器的执行结果并作用在自己的身…

IoTDB 常见问题 QA 第三期

关于 IoTDB 的 Q & A IoTDB Q&A 第三期持续更新!我们将定期汇总我们将定期汇总社区讨论频繁的问题,并展开进行详细回答,通过积累常见问题“小百科”,方便大家使用 IoTDB。 Q1:查询最新值 & null 数据相加方…