前言:FFmpeg是用于转换音频和视频文件的非常强大和通用的命令行工具。它是免费的,适用于Windows,Mac和Linux机器。无论您要加入两个视频文件,从视频文件中提取音频组件,将视频转换为动画GIF,FFmpeg可以做到这一切,甚至更多。
有用的FFMPEG命令
FFmpeg支持所有流行的音频和视频格式。或者,您可以运行命令./ffmpeg -formats来获取FFmpeg安装支持的每种格式的列表。如果你刚刚开始,这里有一些命令可以帮助你了解这个工具的功能。
1.将视频文件剪切成较小的剪辑
您可以使用时间偏移参数(-ss)以HH:MM:SS.ms格式指定开始时间戳,而-t参数用于指定剪辑的实际持续时间(以秒为单位)。
ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4
2.将视频分割成多个部分
如果您想将大型视频分割成多个较小的剪辑而无需重新编码,ffmpeg可以帮助您。该命令会将源视频分为两部分 - 一个从50开始,另一个从50开始,到输入视频的末尾结束。
ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4
3.将视频从一种格式转换为另一种格式
您可以使用-vcodec参数指定要用于输出视频的编码格式。编码视频需要时间,但是您可以通过强制预设来加速进程,但会降低输出视频的质量。
ffmpeg -i youtube.flv -c:v libx264 filename.mp4
ffmpeg -i video.wmv -c:v libx264 -preset ultrafast video.mp4
4.加入(合并)视频文件
如果您有多个音频或视频文件使用相同的编解码器进行编码,则可以使用FFmpeg将它们加入到单个文件中。创建一个输入文件,其中包含要连接的所有源文件的列表,然后运行此命令。
ffmpeg -f concat -i file-list.txt -c copy output.mp4
5.静音视频(删除音频组件)
使用-an参数来禁用视频流的音频部分。
ffmpeg -i video.mp4 -an mute-video.mp4
6.从视频中提取音频
-vn开关从视频中提取音频部分,我们正在使用-ab开关将音频保存为256kbps的MP3音频文件。
ffmpeg -i video.mp4 -vn -ab 256 audio.mp3
7.将视频转换为动画GIF
FFmpeg是将视频转换为动画GIF的优秀工具,质量也不错。使用缩放滤镜指定GIF的宽度,-t参数指定持续时间,而-r指定帧速率(fps)。
ffmpeg -i video.mp4 -vf scale = 500:-1 -t 10 -r 10 image.gif
8.从视频中提取图像帧
该命令将在15秒标记处提取视频帧,并将其保存为800像素宽的JPEG图像。您也可以使用-s开关(如-s 400×300)来指定图像文件的确切尺寸,但如果图像尺寸不符合原始视频文件的宽高比,则可能会创建一个拉伸图像。
ffmpeg -ss 00:00:15 -i video.mp4 -vf scale = 800:-1 -vframes 1 image.jpg
9.将视频转换为图像
您可以使用FFmpeg 每隔n秒自动从视频中提取图像帧,并按照顺序保存图像。此命令在每4秒钟后保存图像帧。
ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png
10.合并音频和视频文件
当最短的剪辑结束时,还可以指定-shortest开关来完成编码。
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:aac -strict experimental output.mp4
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:aac -strict experimental -shortest output.mp4
11.调整视频大小
使用ffmpeg的大小(-s)开关调整视频大小,同时保持宽高比。
ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4
12.从图像创建视频幻灯片
此命令使用名为img001.png,img002.png等的一系列图像创建视频幻灯片,每个图像的持续时间为5秒(-r 1/5)。
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4
13.将海报图像添加到音频
您可以将封面图像添加到音频文件,输出视频的长度将与输入音频流的长度相同。这可能有助于将MP3上传到YouTube。
ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -c:aac -strict experiment -b:a 192k-shortest output.mp4
14.将单个图像转换为视频
使用-t参数指定视频的持续时间。
ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4
15.向电影添加字幕
这将从.srt文件中获取字幕。FFmpeg可以解码大多数常见的字幕格式。
ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv
16.裁剪音频文件
这将创建一个从原始音频文件开始的90秒的30秒音频文件,无需转码。
ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3
17.更改音频音量
您可以使用音量过滤器使用FFmpeg更改媒体文件的音量。该命令将是音频文件的音量的一半。
ffmpeg -i input.wav -af'volume = 0.5'output.wav
18.旋转视频
该命令将使视频剪辑顺时针旋转 90°。您可以将转置设置为2,将视频逆时针旋转90°。
ffmpeg -i input.mp4 -filter:v'transpose = 1'rotate-video.mp4
这将使视频逆时针旋转180°。
ffmpeg -i input.mp4 -filter:v'transpose = 2,transpose = 2'rotate-video.mp4
19.加快或减慢视频
您可以使用FFmpeg的setpts(设置演示时间戳)过滤器来更改视频的速度。该命令将使视频8x(1/8)更快,或使用setpts = 4 * PTS使视频4x更慢。
ffmpeg -i input.mp4 -filter:v“setpts = 0.125 * PTS”output.mp4
20.加快或减慢音频
要改变音频速度,请使用atempo音频滤波器。该命令将使音频速度加倍。您可以使用0.5到2.0之间的任何值作为音频。
ffmpeg -i input.mkv -filter:a“atempo = 2.0”-vn output.mkv
您还应查看ffmpeg.org或wiki trac.ffmpeg.org上的官方文档.