用于处理音频和视频文件的有用 FFmpeg 命令

已发表: 2022-02-26

FFmpeg 是一个非常强大且通用的命令行工具,用于转换音频和视频文件。 它是免费的,可用于 Windows、Mac 和 Linux 机器。 无论您是想合并两个视频文件、从视频文件中提取音频组件、将您的视频转换为动画 GIF,FFmpeg 都可以做到,甚至更多。

使用这个简单的 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 命令