【实用工具】FFmpeg常用的命令

前言

FFmpeg是一个强大的多媒体处理工具,可以用于处理音频、视频和图像。

命令格式

bash 复制代码
ffmpeg {1} {2} -i {3} {4} {5}

上面命令中,五个部分的参数依次如下。

bash 复制代码
1.全局参数
2.输入文件参数
3.输入文件
4.输出文件参数
5.输出文件

常见命令行参数

bash 复制代码
-c:指定编码器
-c copy:直接复制,不经过重新编码(这样比较快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件
-an:去除音频流
-vn: 去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不经过确认,输出时直接覆盖同名文件。

常用命令

  • 查看文件源信息
bash 复制代码
ffmpeg -i input.mp4 -hide_banner
  • 转码视频格式
bash 复制代码
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
  • 调整视频大小
bash 复制代码
ffmpeg -i input.mp4 -vf scale=640:480 output.mp4
  • 提取音频
bash 复制代码
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c:v copy -c:a copy output.mp4
  • 合并视频和音频
bash 复制代码
ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a aac -strict experimental output.mp4
  • 添加水印
bash 复制代码
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
  • 提取视频帧
bash 复制代码
ffmpeg -i input.mp4 -vf "select=eq(n\,100)" -vframes 1 output.jpg
  • 改变音频音量
bash 复制代码
ffmpeg -i input.mp3 -filter:a "volume=2.0" output.mp3
  • 从视频中提取图片
bash 复制代码
ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png
  • 为音频增加封面图片

把音频变成视频,全程使用一张图片(比如专辑封面)

bash 复制代码
ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
  • 为视频增加字幕
bash 复制代码
ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4
  • 添加音轨

将外部音频加入视频,比如添加背景音乐或旁白

bash 复制代码
ffmpeg \
-i input.aac -i input.mp4 \
output.mp4
  • 获取视频总帧数
bash 复制代码
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 gemfield.mp4
  • 实时流媒体传输

FFmpeg可以通过网络将音视频流传输到远程设备或进行直播。例如,将摄像头捕捉到的视频流传输到远程服务器。

bash 复制代码
 ffmpeg -f dshow -i video="Camera" -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts udp://192.168.0.1:1234

其中,-f参数指定输入格式,dshow表示使用DirectShow来捕捉视频;-i参数指定输入设备,video="Camera"表示使用摄像头作为输入;-c:v参数指定视频编码器,libx264表示使用H.264编码;-preset和-tune参数用于优化实时传输的性能;-f mpegts表示输出为MPEG-TS格式;udp://192.168.0.1:1234是远程服务器的地址

参考链接:

30分钟带你入门,20个 FFmpeg操作命令,包你学会 - 知乎

FFmpeg 视频处理入门教程 - 阮一峰的网络日志

FFmpeg教程(超级详细版) - 掘金

FFmpeg 实用命令 --- FFmpeg 教程 文档

FFmpeg的使用指南:从入门到精通 |21xrx.com

相关推荐
没有余地 EliasJie9 分钟前
FFmpeg介绍与ESP32资源受限下的视频流传输优化策略
单片机·物联网·ffmpeg
不想看见4049 分钟前
Qt+FFmpeg 极简播放器示例【音视频方向简单讲解】
qt·ffmpeg·音视频
郭涤生1 小时前
FFmpeg 最常用的 200 条命令分类整理
ffmpeg
yikegis1 小时前
TOP 5 在线音频剪辑软件 免费(2026)
人工智能·ffmpeg·音视频·语音识别·学习方法·canva可画
无巧不成书02182 天前
FFmpeg 保姆级安装教程!Windows/macOS/Linux全平台覆盖,
windows·macos·ffmpeg
kkoral4 天前
OpenCV 与 FFmpeg 的关系
opencv·ffmpeg
kkoral4 天前
如何在 Python 中使用 OpenCV 调用 FFmpeg 的特定功能?
python·opencv·ffmpeg
山栀shanzhi4 天前
【FFmpeg】音视频MP4封装格式转封装MOV
ffmpeg·音视频
山栀shanzhi4 天前
【FFmpeg】是什么是未压缩的裸流?
c++·ffmpeg
Maverick065 天前
02-SQL执行计划与优化器:Oracle是怎么决定“该怎么查“的
数据库·sql·oracle·ffmpeg