FFmpeg常用命令指南
FFmpeg常用命令指南
目录
查看媒体文件信息
要查看视频或音频文件的详细信息,可以使用以下命令:
ffmpeg -i input.mp4
该命令将显示文件的格式、编码信息、分辨率、比特率等详细信息。
视频格式转换
将视频文件从一种格式转换为另一种格式:
ffmpeg -i input.mp4 output.avi
上面的命令将MP4文件转换为AVI文件。FFmpeg会根据输出文件的扩展名自动选择编码器。
提取音频
从视频文件中提取音频:
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
该命令将MP4视频文件中的音频提取并保存为MP3格式。
视频剪辑
从视频文件中剪辑一段特定时间的视频:
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:20 -c copy output.mp4
该命令将从第10秒开始到第20秒结束的片段剪辑出来,并保存为新的MP4文件。
合并视频文件
将多个视频文件合并为一个文件:
首先,创建一个包含所有待合并文件的文本文件(比如filelist.txt
),内容如下:
file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'
然后使用以下命令进行合并:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
该命令将part1.mp4
、part2.mp4
和part3.mp4
合并为output.mp4
。
调整视频分辨率
改变视频的分辨率:
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
该命令将输入视频调整为1280x720的分辨率。
添加水印
在视频上添加图片水印:
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
该命令将watermark.png
图片添加到input.mp4
视频的左上角(10像素偏移)。
转换音频格式
将音频文件从一种格式转换为另一种格式:
ffmpeg -i input.wav output.mp3
该命令将WAV文件转换为MP3格式。
控制比特率
指定输出文件的比特率:
ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4
该命令将输出视频的比特率设置为1000kbps,音频比特率设置为128kbps。
添加字幕
将SRT字幕文件嵌入视频:
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4
该命令将subtitles.srt
字幕文件嵌入到input.mp4
视频中。
处理m3u8
m3u8是一种HLS(HTTP Live Streaming)协议格式,可以将视频文件切片并通过HTTP进行传输。以下是处理m3u8的一些常用命令:
将视频切片并生成m3u8播放列表
ffmpeg -i input.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls output.m3u8
该命令将input.mp4
文件切片成10秒一个片段,并生成一个output.m3u8
播放列表。
从m3u8播放列表下载视频
ffmpeg -i http://example.com/path/to/playlist.m3u8 -c copy output.mp4
该命令从指定的m3u8播放列表下载视频并保存为output.mp4
文件。
自定义HLS切片和分片大小
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -crf 20 -g 48 -hls_time 6 -hls_playlist_type vod -hls_segment_filename 'segment_%03d.ts' output.m3u8
该命令将input.mp4
文件切片成6秒一个片段,并自定义分片文件名为segment_001.ts
,segment_002.ts
等,同时生成一个output.m3u8
播放列表。
旋转视频
将视频旋转一定角度,例如90度:
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
transpose
参数的值解释:
0
:顺时针旋转90度并垂直翻转1
:顺时针旋转90度2
:逆时针旋转90度并垂直翻转3
:逆时针旋转90度
调整音量
提高或降低音频的音量:
ffmpeg -i input.mp4 -af "volume=2.0" output.mp4
该命令将音量提高一倍。可以将2.0
替换为其他值来调整音量。
改变视频帧率
改变视频的帧率,例如将视频帧率设置为30fps:
ffmpeg -i input.mp4 -r 30 output.mp4
该命令将视频的帧率更改为30帧每秒。
视频转GIF
将视频转换为GIF动画:
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
该命令将视频转换为10fps的GIF,并将宽度缩放为320像素(高度按比例调整)。
音频剪辑
剪辑音频文件的一部分:
ffmpeg -i input.mp3 -ss 00:00:30 -to 00:01:00 -c copy output.mp3
该命令将从第30秒开始到第1分钟结束的片段剪辑出来,并保存为新的MP3文件。