Linux 上的 FFmpeg:发现 10 个秘密! 💻🔍
想要从 Linux 终端中获得更多功能吗?您可能不会本能地将视频与命令行联系起来,但使用 FFmpeg,您只需在终端中输入一个简单的命令就可以对视频文件进行很多操作! 🎥💻
如果你不认识他, FFmpeg 是一个处理所有与媒体相关的事务的命令行工具。它在大多数 Linux 发行版的存储库中都有,因此你只需要 查找并安装包 开始使用它。 🛠️👨💻
无论您是想快速播放视频, 信息或表演技巧 为了实现出色的视频编辑,FFmpeg 可以满足您的需求。以下是您可以在 Linux 机器上使用 FFmpeg 执行的一些有用的操作。 🔍✨
1 . 播放视频
您可能已经有了喜欢的视频播放器,这很棒。但有时,您只需要一种快速简便的方法来查看某些内容,而无需打开完整的图形应用程序。你可以使用 FFmpeg 的内置播放器来实现这一点, 韓國
.
例如,要播放视频,打开终端并运行:
ffplay 你的视频文件.mp4

您的视频将出现在单独的窗口中,可供播放。您可以使用“q”退出、“p”暂停以及使用左箭头或右箭头快进或快退等命令来控制它。 ⏪⏩
如果您想循环播放视频,请运行:
ffplay -loop 0 你的视频文件.mp4
选择 -循环 0
使其无限播放。您可以用任意数字替换 0 来设置重复的次数。

2. 以下是在 Linux 终端窗口中播放本地音乐收藏的方法。
通常,获取有关视频文件的信息需要浏览媒体播放器中的菜单,甚至使用单独的应用程序。但是有了 FFmpeg,获取所有这些信息只需一个命令即可。 📊
要获取有关介质的信息,只需运行:
ffmpeg -i 你的视频文件.mp4
几秒钟后,您将看到完整的概述,包括编解码器、比特率、帧速率等。 📈

有关视频、音频和字幕流的更多详细信息,请使用 ffprobe
(FFmpeg 工具):
ffprobe -show_streams –i 你的视频文件.mp4
要获得更清晰的 JSON 输出,请运行:
ffprobe -v quiet -print_format json -show_format -show_streams 你的视频文件.mp4

另外,让我告诉你,所有这些命令都可以帮助你有效地分析视频文件,而无需实际播放它们。 🔍
3 . 录制你的屏幕
FFmpeg 还可以录制您的屏幕。无论您想向某人展示如何在 Linux 中执行某项操作还是创建一个快速演示,您都不需要任何编程程序。 屏幕录制 额外的。 🎤😉
假设您想要录制整个屏幕 10 秒。你可以这样做:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0.0 -t 10 输出.mp4
此命令以 1920×1080 的分辨率和每秒 30 帧的帧速率捕获您的桌面。此外,选项 -i :0.0+0.0
告诉 FFmpeg 要录制哪个屏幕。例如,在我们的案例中, :0.0
指的是主屏幕,以及 +0,0
表示从左上角开始录制。
如果你不知道屏幕尺寸或位置,可以通过以下方法查找:
pytcpdp | grep 尺寸
您应该知道,上面的 FFmpeg 命令录制的是没有音频的桌面屏幕。因此,如果您还想在录制视频的同时录制音频,则需要指定音频输入设备以及视频输入设备。
例如,您可以使用选项 -f alsa -i 脉冲
要捕获屏幕视频和音频:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0.0 -f alsa -i default -t 10 输出.mp4
要录制特定窗口,FFmpeg 命令有点复杂,但对于快速录制 全屏,FFmpeg是一个极好的选择。另外,如果您喜欢从终端工作,它可以让您完全控制录制过程的每个方面。 🔥

4.开始使用这个免费的开源程序进行实时捕获或流式传输。
您是否曾经想从视频中提取单帧,也许是为了制作缩略图或捕捉精彩镜头? FFmpeg 使这个任务变得非常简单。 📸
例如,假设您想从视频中每秒提取一张图片并将其保存为图像文件。为此,请运行:
ffmpeg -i input.mp4 -r 1 imagen-%04d.jpg

这里,选项 -r 1
将捕获率设置为每秒一张图像。从视频的每一秒提取一帧。您可以调整此数字以更频繁或更少地捕获图像。如果需要,您还可以将 JPG 更改为 PNG 或其他图像格式。 🖼️
5 . 将图像转换为视频
FFmpeg不仅可以提取图像,还可以将一系列图像组合成视频。无论您想创建幻灯片、动画还是延时摄影,FFmpeg 都能简化该过程。 🎞️
转换之前,请确保您的图像按顺序命名(例如,image-0001.jpg,image-0002.jpg)。现在,使用以下命令将这些序列图像转换为视频:
ffmpeg -framerate 1 -i imagen-%04d.jpg -c:v libx264 -r30 output.mp4
在这里,我们将帧速率选项设置为 1 FPS,这意味着如果我们有 5 帧并且我们更喜欢 5 秒的视频,则帧速率将为 1。您可以调整帧速率值来加快或减慢视频速度。
上述命令无需 添加音乐。但是如果您想在视频中添加音乐该怎么办?运行此命令,替换 音乐.mp3
您想要的音频文件:
ffmpeg -framerate 1 -i imagen_%04d.jpg -i music.mp3 -c:v libx264 -r30 -shortest slideshow.mp4
这里,选项 -最短
使视频的长度与最短的条目相同。因此,如果音频比演示文稿长,则视频将与幻灯片的长度相匹配。 🎶

ImageMagick 是一组用于修改和处理图像的命令行实用程序。
6 . 将视频转换为 MP3 或 GIF
FFmpeg 最强大的功能之一是将视频转换为不同的格式,例如将视频转换为 MP3 或从视频创建 GIF 动画。 🔄
要从视频中提取音频,请使用选项 -vn,强制 FFmpeg 丢弃视频流并仅将音频转换为 MP3:
ffmpeg -i 输入.mp4 -vn -acodec libmp3lame 输出.mp3
您还可以更改 输出.mp3
到 输出.wav
或者其他音频格式(如果您需要)。
要将视频转换为 GIF,请使用:
ffmpeg -i 样本视频.mp4 输出.gif
您还可以提取视频的特定部分并将其转换为 GIF,方法如下:
ffmpeg -ss 30.0 -t 2.1 -i sample_video.mp4 输出.gif
此命令从视频长度 00:30 的开头修剪 2.1 秒并将其转换为 GIF。 🎉
7 . 为电影添加字幕
为电影添加字幕非常有用,尤其是在观看不同语言的内容时。 FFmpeg 简化了为视频添加字幕的过程。 🎬
首先,获取一个字幕文件,通常带有 SRT 扩展名。例如,如果你有一个字幕文件(例如 字幕.srt
)和视频(输入.mp4
),您可以使用以下方式将字幕永久嵌入到视频中:
ffmpeg -i 输入.mp4 -vf "subtitles=subtitles.srt" 输出.mp4
此命令永久嵌入字幕,确保其保持可见且无法关闭。
如果您希望观众可以打开或关闭可选字幕,请使用以下命令:
ffmpeg -i 输入.mp4 -i 字幕.srt -c 复制 -c:s mov_text 输出.mp4
此命令将字幕保留为单独的轨道,从而保留视频的原始质量。 📝
8 . 无需转码即可重建视频索引
有时视频可能会出现故障 - 它可能会跳过、冻结或阻止您快进或快退。该问题通常由损坏的视频索引引起。要解决这个问题,您可能需要重建索引而不重新编码视频。
幸运的是,FFmpeg 通常可以在不改变视频本身的情况下修复索引。这个过程称为重新混合,速度很快,因为它在纠正文件结构的同时保留了原始视频和音频质量。 ⚡
要重建视频索引,请运行:
ffmpeg -i 输入.mp4 -c 复制 -copyts 输出.mp4
这里,选项 -c 复制
告诉 FFmpeg 按原样复制视频和音频流,保留其质量并加快处理速度。选择 -复制
确保时间信息被正确复制,这对于流畅播放至关重要。
这种方法 有助于快速检查和修复文件 视频。但如果问题仍然存在,视频可能会严重损坏。 ⚠️
9 . 调整视频大小
调整视频大小是 FFmpeg 最有用的功能之一。您可以轻松调整视频尺寸以 社交网络、移动屏幕或优化存储。视频越小,占用空间越小,上传更多 速度快,在连接上效果最佳 慢的。 📏
要将视频缩放到特定尺寸(例如 1280×720),请使用:
ffmpeg -i 输入.mp4 -vf scale=1280:720 输出.mp4
如果您希望 FFmpeg 自动保持纵横比,请仅指定一个尺寸或使用表达式:
ffmpeg -i 输入.mp4 -vf scale=640:-1 输出.mp4
这会将宽度设置为 640 像素,FFmpeg 会计算适当的高度以保持纵横比。但是,请记住,缩小尺寸可能会降低质量,因此请谨慎选择分辨率。
10 . 修剪和剪切视频
修剪视频允许您仅提取必要的部分而不影响质量。这非常适合删除不需要的开头、结尾或任何错误。 ✂️
例如,要从视频的第 10 秒开始提取 20 秒的片段,请运行:
ffmpeg -i 输入.mp4 -ss 00:00:10 -to 00:00:30 -c 复制输出_trimmed.mp4
这里, -ss 00:00:10
告诉 FFmpeg 从第 10 秒开始,而 - 至 00:00:30
在第 30 秒停止视频。此外,选项 -c 复制
确保无需重新编码即可复制视频和音频,从而使复制过程更快,同时保留原始质量。
裁剪可以去除不必要的边缘或放大视频的最重要部分。要将视频裁剪为 640x480 像素,从左上角开始,运行以下命令:
ffmpeg -i 输入.mp4 -vf "crop=640:480:0:0" 输出_裁剪.mp4
剪切过滤器有四个值:宽度、高度以及剪切开始位置的 x 和 y 坐标。在这种情况下,宽度和高度设置为 640×480,并且 0:0
确保裁剪从原始视频的左上角开始。 🎥

通过练习和学习这些 FFmpeg 技巧,你可以提高工作效率并优化你的 工作量 容易地。请记住——这只是一个开始。 FFmpeg 中还有许多东西等待探索,因此请深入研究并不断尝试! 🚀