FFmpeg 是一个强大的多媒体处理工具,可以进行视频和音频的转换、剪辑、合并等操作。以下是一些常用的 FFmpeg 命令:
### 1. 转换视频格式
```bash
ffmpeg -i input.mp4 output.avi
```
将 input.mp4
转换为 output.avi
格式。
### 2. 提取音频
```bash
ffmpeg -i input.mp4 -vn -acodec copy output.aac
```
从 input.mp4
中提取音频并保存为 output.aac
。
### 3. 将视频转换为 GIF
```bash
ffmpeg -i input.mp4 output.gif
```
将 input.mp4
转换为 GIF 动画 output.gif
。
### 4. 剪辑视频
```bash
ffmpeg -i input.mp4 -ss 00:00:30 -t 00:01:00 -c copy output.mp4
```
从 input.mp4
中剪辑从 00:00:30 开始,长度为 1 分钟的视频片段并保存为 output.mp4
。
### 5. 合并视频文件
首先创建一个包含所有待合并文件的文本文件 filelist.txt
,内容如下:
```
file 'file1.mp4'
file 'file2.mp4'
file 'file3.mp4'
```
然后运行以下命令:
```bash
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
```
将 file1.mp4
、`file2.mp4` 和 file3.mp4
合并为 output.mp4
。
### 6. 改变视频分辨率
```bash
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
```
将 input.mp4
的分辨率调整为 1280x720 并保存为 output.mp4
。
### 7. 压缩视频
```bash
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
```
使用 H.265 编码压缩 input.mp4
并保存为 output.mp4
,质量因子为 28。
### 8. 添加水印
```bash
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
```
将水印图片 watermark.png
添加到 input.mp4
的左上角,并保存为 output.mp4
。
### 9. 转换音频格式
```bash
ffmpeg -i input.mp3 output.wav
```
将 input.mp3
转换为 output.wav
。
### 10. 修改视频帧率
```bash
ffmpeg -i input.mp4 -r 30 output.mp4
```
将 input.mp4
的帧率调整为 30 帧每秒并保存为 output.mp4
。
### 11. 提取视频帧
```bash
ffmpeg -i input.mp4 -r 1 -f image2 frame_%04d.png
```
从 input.mp4
中每秒提取一帧,并保存为 frame_0001.png
,`frame_0002.png` 等。
### 12. 添加字幕
```bash
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4
```
将 subtitles.srt
字幕文件添加到 input.mp4
并保存为 output.mp4
。
### 13. 调整视频音量
```bash
ffmpeg -i input.mp4 -af "volume=2.0" output.mp4
```
将 input.mp4
的音量提高一倍,并保存为 output.mp4
。
### 14. 旋转视频
```bash
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
```
将 input.mp4
顺时针旋转 90 度并保存为 output.mp4
。`transpose=2` 是逆时针旋转 90 度,`transpose=0` 是水平翻转,`transpose=3` 是垂直翻转。
这些命令涵盖了 FFmpeg 的一些常见用途。可以根据需要组合和修改这些命令来处理不同的多媒体文件。
### 15. 将视频切分成多个片段
```bash
ffmpeg -i input.mp4 -c copy -map 0 -f segment -segment_time 30 output%03d.mp4
```
将 input.mp4
每 30 秒切分为一个片段,输出文件命名为 output001.mp4
,`output002.mp4` 等。
### 16. 将视频转换为 HLS 格式
```bash
ffmpeg -i input.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
```
将 input.mp4
转换为 HLS 格式,切片时间为 10 秒,输出的播放列表文件为 index.m3u8
。
### 17. 将视频转换为 DASH 格式
```bash
ffmpeg -i input.mp4 -profile:v on-demand -min_seg_duration 5000000 -use_template 1 -use_timeline 1 -init_seg_name init.mp4 -media_seg_name chunk_$Number$.m4s -f dash manifest.mpd
```
将 input.mp4
转换为 DASH 格式,输出的播放列表文件为 manifest.mpd
。
### 18. 转码视频并添加元数据
```bash
ffmpeg -i input.mp4 -metadata title="My Video" -metadata author="John Doe" -c:v libx264 -c:a aac output.mp4
```
将 input.mp4
转码为 H.264 视频和 AAC 音频,并添加标题和作者元数据。
### 19. 混音多音轨
```bash
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 output.mp3
```
将 input1.mp3
和 input2.mp3
混合为一个双声道音频 output.mp3
。
### 20. 裁剪视频
```bash
ffmpeg -i input.mp4 -vf "crop=640:480:0:0" output.mp4
```
将 input.mp4
裁剪为 640x480 的视频,从左上角 (0,0) 开始。
### 21. 添加背景音乐
```bash
ffmpeg -i input.mp4 -i background.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -shortest output.mp4
```
将 background.mp3
作为背景音乐添加到 input.mp4
中,并保存为 output.mp4
。
### 22. 更改视频速度
```bash
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
```
将 input.mp4
的播放速度加快一倍(即播放时间缩短一半),并保存为 output.mp4
。如果需要减慢速度,可以将 0.5
改为大于 1
的值。
### 23. 更改音频速度
```bash
ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp3
```
将 input.mp4
的音频速度加快一倍(即播放时间缩短一半),并保存为 output.mp3
。如果需要减慢速度,可以将 2.0
改为小于 1
的值。
### 24. 将图片序列转换为视频
```bash
ffmpeg -framerate 24 -i img_%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
```
将命名为 img_001.png
,`img_002.png` 等的图片序列转换为视频 output.mp4
,帧率为 24 帧每秒。
### 25. 替换视频音轨
```bash
ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4
```
将 input.mp4
的音轨替换为 new_audio.mp3
中的音轨,并保存为 output.mp4
。
这些命令提供了处理视频和音频文件的基本方法。根据需要,可以组合和修改这些命令来满足特定的需求。FFmpeg 的功能非常强大,文档也非常详细,可以参考 [FFmpeg 官方文档](https://ffmpeg.org/documentation.html) 了解更多信息。