FFmpeg 命令详解(完整详细版)

embedded/2025/3/6 3:29:33/

FFmpeg 是一个强大的多媒体处理工具,支持音视频转换、剪辑、合并、滤镜、压缩等操作。本文整理了 常见 FFmpeg 命令,并配有 详细说明,帮助你高效使用 FFmpeg。


1. FFmpeg 基础命令

1.1 查看 FFmpeg 版本

ffmpeg -version

查看 FFmpeg 版本、编译选项等信息。

1.2 查看支持的编解码器

ffmpeg -codecs

列出 FFmpeg 支持的所有编解码器(视频、音频、字幕)。

1.3 查看支持的格式

ffmpeg -formats

查看 FFmpeg 支持的输入/输出格式(如 MP4、MKV、MP3、AVI)。

1.4 查看详细的编码器信息

ffmpeg -encoders

列出 FFmpeg 支持的编码器

1.5 查看详细的解码器信息

ffmpeg -decoders

列出 FFmpeg 支持的解码器

1.6 查看滤镜(filters)

ffmpeg -filters

列出所有 可用的视频/音频滤镜


2. 视频格式转换

2.1 转换视频格式

ffmpeg -i input.mp4 output.avi

MP4 转换为 AVI(FFmpeg 会自动选择合适的编解码器)。

2.2 指定编码格式

ffmpeg -i input.mp4 -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k output.mp4
  • -c:v libx264:使用 H.264 视频编码(适合 MP4)
  • -preset fast:设置 编码速度(可选 ultrafast superfast veryfast faster fast medium slow slower veryslow
  • -crf 23:质量控制(0 = 无损,51 = 最差,默认 23,建议范围 18-28
  • -c:a aac -b:a 192kAAC 音频编码,比特率 192kbps

3. 视频压缩

3.1 降低视频比特率(减小体积)

ffmpeg -i input.mp4 -b:v 1000k -c:a copy output.mp4
  • -b:v 1000k:将 视频比特率 降到 1000kbps
  • -c:a copy:音频直接拷贝,不重新编码

3.2 指定分辨率(缩小视频)

ffmpeg -i input.mp4 -vf "scale=1280:720" -c:a copy output.mp4
  • -vf "scale=1280:720":将 视频分辨率调整为 1280×720
  • -c:a copy:音频保持不变

4. 视频剪辑

4.1 裁剪视频(指定开始时间和时长)

ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c copy output.mp4
  • -ss 00:00:10从第 10 秒开始
  • -t 00:00:20截取 20 秒
  • -c copy无损剪辑

4.2 截取某个时间段(精确模式)

ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v libx264 -c:a aac output.mp4
  • -ss 00:00:10:从 10 秒开始
  • -to 00:00:30:截取 10 秒 ~ 30 秒
  • 需要重新编码,避免关键帧误差

5. 处理音频

5.1 提取音频(MP3)

ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
  • -q:a 0:高质量 MP3
  • -map a:只提取音频

5.2 替换视频音轨

ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -c:a aac -b:a 192k -map 0:v:0 -map 1:a:0 output.mp4
  • -map 0:v:0:使用原视频
  • -map 1:a:0:使用新的音频

5.3 改变音量

ffmpeg -i input.mp3 -af "volume=1.5" output.mp3
  • volume=1.5:音量放大 1.5 倍

6. 处理图片与视频

6.1 图片合成视频

ffmpeg -framerate 1 -i img%d.jpg -c:v libx264 -r 25 -pix_fmt yuv420p output.mp4
  • -framerate 1:每张图片播放 1 秒
  • img%d.jpg:文件名格式 img1.jpgimg2.jpg
  • -r 25:设置 25 fps

6.2 视频转换为图片序列

ffmpeg -i input.mp4 -vf "fps=1" img%d.jpg
  • fps=1:每秒截取 1 帧

7. 视频拼接

7.1 合并多个 MP4 文件(无损)

创建 filelist.txt

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

然后执行:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
  • -f concat:合并模式
  • -safe 0:允许特殊字符路径

8. 其他高级功能

8.1 添加字幕

ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output.mp4
  • subtitles=subtitle.srt:嵌入 SRT 字幕

8.2 旋转视频

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
  • transpose=1:顺时针 90° 旋转
  • transpose=2:逆时针 90°
  • transpose=3180°

总结

操作FFmpeg 命令
查看版本ffmpeg -version
转换格式ffmpeg -i input.mp4 output.avi
压缩视频ffmpeg -i input.mp4 -b:v 1000k output.mp4
剪辑视频ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp4
提取音频ffmpeg -i input.mp4 -q:a 0 output.mp3
替换音频ffmpeg -i input.mp4 -i new.mp3 -c:v copy -c:a aac output.mp4
图片转视频ffmpeg -framerate 1 -i img%d.jpg output.mp4
视频转图片ffmpeg -i input.mp4 -vf "fps=1" img%d.jpg

http://www.ppmy.cn/embedded/170373.html

相关文章

23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式&#xff0…

国科大——数据挖掘(0812课程)——考试真题

前沿: 此文章记录了国科大数据挖掘(0812)课程的考试真题。 注: 考试可以携带计算器,毕竟某些题需要计算log,比如:决策树等。 2016年 1. Suppose a hospital tested the age and body fat for …

ECharts中yAxisIndex的作用

yAxisIndex 通常在数据可视化库(如 ECharts 等)中使用,用于指定系列数据对应的 Y 轴索引。下面为你详细介绍其作用和使用场景: 作用 在一个图表中,可能会有多个 Y 轴(比如双 Y 轴图表)&#x…

数据库操作命令详解:CREATE、ALTER、DROP 的使用与实践

引言​ 数据库是存储和管理数据的核心工具,而 ​DDL(Data Definition Language,数据定义语言)​​ 是构建和调整数据库结构的基石。本文将通过实际示例,详细讲解 CREATE(创建)、ALTER&#xff0…

RAG检索增强生成(Retrieval-Augmented Generation)介绍(双模态架构:检索子系统、生成子系统)实现知识获取与内容生成的协同

文章目录 增强生成(RAG)技术:原理、架构与前沿实践1. RAG技术架构剖析1.1 技术融合范式- **检索子系统**- **生成子系统** 2. 核心组件与工作流程2.1 数据预处理管线- **多粒度分块策略**- **特征增强技术** 2.2 混合检索引擎 3. 性能优化关键…

anolis8.9-k8s1.32-系统基本配置

一、系统信息 # cat /etc/anolis-release Anolis OS release 8.9 二、 firewalld设置 firewall-cmd --zonepublic --add-port6443/tcp --permanentfirewall-cmd --zonepublic --add-port10250-10259/tcp --permanentfirewall-cmd --zonepublic --add-port30000-32767/tcp -…

Redis——缓存穿透、击穿、雪崩

缓存穿透 什么是缓存穿透 缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。举个例子:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库…

算法思想-贪心算法

算法思想 - 贪心算法 引言 贪心算法(Greedy Algorithm)是一种在每个步骤中都做出局部最优选择的算法,期望通过这些局部最优解能够得到全局最优解。它并不总是能找到全局最优解,但在某些情况下,贪心算法可以非常高效地…