用于处理音频和视频文件的有用 FFmpeg 命令
已发表: 2022-02-26FFmpeg 是一个非常强大且通用的命令行工具,用于转换音频和视频文件。 它是免费的,可用于 Windows、Mac 和 Linux 机器。 无论您是想合并两个视频文件、从视频文件中提取音频组件、将您的视频转换为动画 GIF,FFmpeg 都可以做到,甚至更多。
使用这个简单的 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 400x300)来指定图像文件的确切尺寸,但如果图像大小不符合原始视频文件的纵横比,它可能会创建拉伸图像。
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:a aac -strict experimental output.mp4
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a 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:a aac -strict experimental -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' rotated-video.mp4
这会将视频逆时针旋转 180°。
ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4
19.加快或减慢视频
您可以使用 FFmpeg 的setpts
(设置演示时间戳)过滤器来更改视频的速度。 此命令将使视频快 8 倍 (1/8) 或使用setpts=4*PTS
使视频慢 4 倍。
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
Stack Exchange 有一个很好的概述,可以帮助您开始使用 FFmpeg。 您还应该查看 ffmpeg.org 上的官方文档或 trac.ffmpeg.org 上的 wiki,以了解您可以使用 FFmpeg 做的所有可能的事情。
另请参阅:基本 Linux 命令