【实用工具】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

相关推荐
ZouZou老师20 分钟前
FFmpeg性能优化经典案例
性能优化·ffmpeg
aqi003 小时前
FFmpeg开发笔记(九十)采用FFmpeg套壳的音视频转码百宝箱FFBox
ffmpeg·音视频·直播·流媒体
齐齐大魔王5 小时前
FFmpeg
ffmpeg
你好音视频6 小时前
FFmpeg RTSP拉流流程深度解析
ffmpeg
IFTICing17 小时前
【环境配置】ffmpeg下载、安装、配置(Windows环境)
windows·ffmpeg
haiy201117 小时前
FFmpeg 编译
ffmpeg
aqi0021 小时前
FFmpeg开发笔记(八十九)基于FFmpeg的直播视频录制工具StreamCap
ffmpeg·音视频·直播·流媒体
八月的雨季 最後的冰吻1 天前
FFmepg--28- 滤镜处理 YUV 视频帧:实现上下镜像效果
ffmpeg·音视频
ganqiuye1 天前
向ffmpeg官方源码仓库提交patch
大数据·ffmpeg·video-codec
草明1 天前
ffmpeg 把 ts 转换成 mp3
ffmpeg