当前位置: 首页 > article >正文

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

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.kler.cn/a/573262.html

相关文章:

  • 分布式WEB应用中会话管理的变迁之路
  • 苹果Siri升级遇阻,国行iPhone或将引入阿里、百度AI自救
  • Web3 的去中心化治理:如何实现透明与公正
  • 代码混淆与代码打包---bash脚本
  • 轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题
  • redis八股个人总结
  • 【C++设计模式】第一篇:单例模式(Singleton)​
  • 可视挖耳勺使用技巧:如何为儿童清洁耳道更安全
  • 从文件到块: 提高 Hugging Face 存储效率
  • 备份docker的数据库文件信息
  • Android创建DeepSeek聊天对话
  • Xcode 无限循环闪退解决方案
  • web前端可以获取客户端的接入互联网的真实地址吗
  • 烟花燃放安全管控:智能分析网关V4烟火检测技术保障安全
  • 【玩转正则表达式】替换与正则表达式的结合
  • “RStudio UI“快速指南
  • 运维SaltStack面试题及参考答案
  • 神经网络|(十三)|SOM神经网络
  • C++ 将jpg图片变成16位565bmp图片
  • C++并发以及多线程的秘密