FFmpeg在Linux下的使用指南
一、简介
FFmpeg是一款开源的多媒体处理工具,它能够在Linux、Windows和Mac OS等操作系统上运行,它提供了录制、转换以及流化音视频的完整解决方案,包括视频采集、视频格式转换、视频抓图、给视频加水印和图文等,FFmpeg采用LGPL或GPL许可证,通过它可以实现音视频的编解码、转码、剪辑、合并等操作。
二、安装
1. Ubuntu系统
sudo apt-get update sudo apt-get install ffmpeg
2. Fedora系统
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf install ffmpeg ffmpeg-devel
3. CentOS7系统
方法一:yum安装
sudo yum install epel-release sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm sudo yum install ffmpeg ffmpeg-devel
方法二:源码安装
下载源码 cd /usr/local/ mkdir ffmpeg cd ffmpeg tar -xjvf ffmpeg-4.4.1.tar.xz cd ffmpeg-4.4.1 ./configure --enable-shared --prefix=/usr/local/ffmpeg/ffmpeg-4.4.1 make make install echo "/usr/local/ffmpeg/ffmpeg-4.4.1/lib" > /etc/ld.so.conf.d/ffmpeg.conf ldconfig
三、基本使用
1.查看版本
ffmpeg -version
2.查看支持的编解码器和格式
ffmpeg -codecs # 查看支持的编解码器 ffmpeg -formats # 查看支持的格式
四、常用命令
1. 视频文件格式转换
ffmpeg -i input.mp4 output.avi
2. 音频文件格式转换
ffmpeg -i input.wav output.mp3
3. 提取音频
从视频文件中提取音频:
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
4. 改变视频分辨率
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
5. 剪辑视频
剪辑视频中的指定时间段:
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:20 -c copy output.mp4
剪辑音频中的指定时间段:
ffmpeg -i input.mp3 -ss 00:00:10 -to 00:00:20 -c copy output.mp3
6. 合并视频文件
将多个视频文件合并为一个:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
filelist.txt内容示例:
file 'input1.mp4' file 'input2.mp4' file 'input3.mp4'
7. 合并音频文件
将多个音频文件合并为一个:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp3
filelist.txt内容示例:
file 'input1.mp3' file 'input2.mp3' file 'input3.mp3'
8. 将音频和视频合并
将音频和视频合并为一个文件:
ffmpeg -i input.mp4 -i input.mp3 -c:v copy -c:a aac output.mp4
9. 添加水印
在视频中添加水印:
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
10. 调整音量
调整音频文件的音量:
ffmpeg -i input.mp3 -filter:a "volume=1.5" output.mp3
11. 改变播放速度
改变视频播放速度:
加速播放 ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4 减速播放 ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" output.mp4
改变音频播放速度:
加速播放 ffmpeg -i input.mp3 -filter:a "atempo=1.5" output.mp3 减速播放 ffmpeg -i input.mp3 -filter:a "atempo=0.75" output.mp3
五、批处理操作
可以编写脚本批量处理多个文件,批量转换视频格式:
#!/bin/bash for file in *.mp4; do ffmpeg -i "$file" "${file%.mp4}.avi" done
六、常见问题与解答(FAQs)
Q1: 如何更改FFmpeg输出文件的编码格式?
A1: 使用-c:v
和-c:a
选项分别设置视频和音频的编码格式,转换为H.264编码的视频和AAC编码的音频:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
Q2: 如果FFmpeg命令执行失败,如何排查问题?
A2: 可以查看命令行中的错误信息,并确保输入文件存在且路径正确,如果遇到编解码器相关的错误,可以尝试安装缺失的编解码器库或更新FFmpeg版本。