您是否曾有过需要修改或优化的视频文件?您可能有一段视频占用了硬盘太多空间,或者您只需要从一段长视频中剪切一小段或降低分辨率。在这种情况下,专业人士和家庭用户都会使用 FFmpeg 这款实用软件。在本文中,大眼仔旭将解释什么是 FFmpeg、如何安装它,并介绍使用 FFmpeg 的一些最常用和最有用的命令。
什么是 FFmpeg?
FFmpeg 是一款免费的开源视频和音频处理工具,可通过命令行运行。
FFmpeg 之所以成为首选工具,原因有很多:
- 免费:完全免费。
- 开源: 它拥有一个活跃而专业的开源社区,不断部署修正、改进和新功能。
- 平台兼容性: FFmpeg 适用于 Windows、Mac 和 Linux。
- 命令行界面: 它是一个轻量级解决方案,通过命令行界面提供大量选项。
如何安装 FFmpeg
某些操作系统(如 Ubuntu)默认安装 FFmpeg,因此您的电脑上可能已经安装了它。
使用以下命令检查是否已安装:
1 ffmpeg -version
如果它给出了版本号和构建信息,说明你已经安装了它。
如果没有,或者您使用的是 Windows 或 Mac,那么您就需要从这里或第三方下载静态或编译后的二进制可执行文件。遗憾的是,FFmpeg 只提供源代码,不提供可直接运行的软件。
以下是您需要遵循的关键步骤:
- 导航至 FFmpeg 下载页面。
- 在 “获取软件包和可执行文件 ”下,选择您的操作系统,以显示供应商列表。
- 访问最合适的供应商,并按照其网站上的说明操作。通常情况下,你需要运行一组命令,或者下载一个包含 FFmpeg 执行程序的压缩文件(.zip、.7z、.tar.gz 等)。包含 FFmpeg 可执行文件。
- 如果是下载,请将压缩文件的内容解压缩到您选择的位置。浏览解压后的文件,你会在 bin 文件夹中找到一个名为 ffmpeg 或 ffmpeg.exe 的文件。
要运行 FFmpeg,您需要使用命令行;打开一个新的终端,导航到解压缩 ffmpeg 文件的目录,然后再次键入并运行以下命令:
1 ffmpeg -version
如果安装正确,您应该会看到类似下面的输出:
1
2
3
4
5
6
7
8
9
10
11
12
13 ffmpeg version 2024-07-27-git-7375a6ca7b-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
libavutil 58. 36.101 / 58. 36.101
libavcodec 60. 38.100 / 60. 38.100
libavformat 60. 20.100 / 60. 20.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 17.100 / 9. 17.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
要使 FFMpeg 更有用,并能从任何文件夹中使用,最后一个步骤是将其添加到系统的 PATH 中。这对每个操作系统来说都不一样,但通常是将 ffmpeg 可执行文件所在的目录添加到 PATH 环境变量中。
现在 FFmpeg 已成功安装,让我们通过示例来了解如何使用 FFmpeg!
FFmpeg 示例和常见用途
让我们来看看 FFmpeg 中一些最常用、最有用的命令。
您需要一个样本视频文件来测试这些命令。你可以使用电脑上的任何视频文件,文件名为 dayanzai-ko.mp4。
使用 FFmpeg 转换视频格式
最简单易行的命令之一就是将一种视频格式转换成另一种格式。当你需要让视频与特定设备、播放器或平台兼容时,这是一项常见任务。
使用我们的 dayanzai-ko.mp4 示例文件,将视频从一种格式转换为另一种格式的基本命令是:
1 ffmpeg -i dayanzai-ko.mp4 dayanzai-ko.webm
这个简单的命令就能将 MP4 格式的视频转换为 WEBM 格式。FFmpeg 很聪明,它知道视频和音频编解码器应该转换成与新文件类型兼容的格式。例如,视频从 h264 (MP4) 转为 vp9 (WEBM),音频从 aac (MP4) 转为 opus (WEBM)。
还可以将一种视频格式转换为另一种视频格式,并完全控制编码选项。该命令使用以下模板:
1 ffmpeg -i input.mp4 -c:v video_codec -c:a audio_codec output.ext
以下是选项和占位符,您可以用自己的值替换:
- -i input.mp4:用输入视频文件的路径替换 input.mp4。
- -c:v video_codec: 指定输出的视频编解码器。用所需的视频编解码器替换 vide_codec(例如,H.265 的编解码器为 libx265)。
- -c:a audio_codec: 指定输出的音频编解码器。用所需的音频编解码器替换 audio_codec(例如,AAC 音频用 aac)。
- output.ext: 将其替换为所需的输出文件名和扩展名(例如 output.mp4)。
下面是一个使用 H.264 视频编解码器和 AAC 音频编解码器将 MP4 视频转换为 MKV 视频的示例:
1 ffmpeg -i dayanzai-ko.mp4 -c:v libx264 -c:a aac dayanzai-ko.mkv
使用 FFmpeg 修剪视频
如果您有一段较长的视频,但想提取一小部分,可以使用 FFmpeg 对视频进行修剪。您可以使用 ss(开始时间)和 t(持续时间)选项。
下面是一个模板命令示例:
1 ffmpeg -i input.mp4 -ss start_time -t duration -c copy output.mp4
使用以下选项,并用特定值替换占位符:
- -ss start_time: 将 start_time 替换为要修剪的起始时间。可以使用各种时间格式,如 HH:MM:SS 或秒。例如,如果要从 1 分 30 秒开始修剪,可以使用 -ss 00:01:30 或去掉小时,使用 -ss 01:30。
- -t duration: 指定修剪的持续时间。同样,你可以使用各种时间格式。例如,如果要剪切 20 秒,可以使用 -t 20。
- -c copy: 该选项无需重新编码即可复制视频和音频编解码器,这样不仅速度更快,还能保留原始质量。如果需要重新编码,可以指定不同的编解码器或省略此选项。
下面是一个将 1 分 30 秒的视频剪辑为 20 秒的命令示例:
1 ffmpeg -i dayanzai-ko.mp4 -ss 00:00:10 -t 5 -c copy trimmed.mp4
使用 FFmpeg 裁剪视频
在智能手机和社交网络时代,将视频裁剪成不同尺寸和宽高比已成为处理视频时的一项基本要求。要使用 FFmpeg 裁剪视频,请使用裁剪过滤器。
下面是一个模板示例:
1 ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
选项和占位符说明如下:
- input.mp4:用文件名或输入视频的路径替换。
- -filter:v “crop=w:h:x:y” 并根据您的要求指定裁剪参数 w(宽度)、h(高度)、x(裁剪 x 坐标)和 y(裁剪 y 坐标)。
- output.mp4:用输出视频的文件名或路径替换。
下面是一个将视频裁剪为宽 640 像素、高 640 像素,并从横向 900 像素和纵向 50 像素坐标开始裁剪的命令示例:
1 ffmpeg -i dayanzai-ko.mp4 -filter:v "crop=640:640:900:50" cropped.mp4
如果使用提供的测试文件运行此命令,你会看到它创建了一个裁剪为扬声器面部的正方形视频。
有关更多信息和示例,请参阅如何使用 FFmpeg 裁剪和调整视频大小。
使用 FFmpeg 从视频中提取或移除音频
有两种常见的情况需要处理视频音频,一种是提取音频,使其没有视频;另一种是从视频中移除音频,使其无声或静音。
要使用 FFmpeg 从视频文件中提取并保存音频,请使用此命令模板:
1 ffmpeg -i input.mp4 -vn output.mp3
使用以下选项,您可以根据自己的偏好替换以下占位符:
- input.mp4:将其替换为输入视频文件的路径。
- -vn:此选项禁用视频处理。
- output.mp3: 将其替换为所需的输出音频文件名称和扩展名。在本例中,输出将保存为 MP3 文件。
下面是一个使用测试文件的命令示例:
1 ffmpeg -i dayanzai-ko.mp4 -vn dayanzai-ko.mp3
要使用 FFmpeg 消除视频文件中的音频(或静音),可以使用 -an 选项,该选项可禁用音频处理。下面是一个命令示例:
1 ffmpeg -i input.mp4 -an -c:v copy output.mp4
下面是对所用选项的解释:
- -an: 该选项禁用音频处理。
- -c:v copy: 该选项复制视频流时无需重新编码,速度更快,并能保留原始视频质量。如果要重新编码视频,可以指定不同的视频编解码器。
下面是一个使用测试文件的示例:
1 ffmpeg -i dayanza-ko.mp4 -an -c:v copy dayanzai-ko-muted.mp4
使用 FFmpeg 连接/合并视频
串联视频是 FFmpeg 用来描述将多个视频片段连接、合并或拼接在一起的技术术语。要在 FFmpeg 中将多个视频文件串联(或连接)到一起,可以使用串联解复用器。
首先,创建一个文本文件,其中包含要串联的视频文件列表。每一行都应包含一个视频文件的文件路径。
例如,创建一个名为 filelist.txt 的文件,其中包含硬盘上的视频文件列表:
file ‘video1.mp4’
file ‘video2.mp4’
file ‘video3.mp4’
然后,使用以下 FFmpeg 命令来连接视频:
1 ffmpeg -f concat -safe 0 -i filelist.txt -c copy merged.mp4
以下是所用选项的摘要:
- -f concat: 指定要使用的格式(concat)。
- -safe 0:允许在文件列表中使用绝对路径。
- -i filelist.txt: 指定输入文件列表。
- -c copy: 复制数据流(视频、音频),无需重新编码,保留原始质量。如果需要重新编码,可以指定不同的编解码器或省略此选项。
- merged.mp4:将其替换为所需的输出文件名和扩展名。
根据您的特定文件名和路径调整 filelist.txt 中的文件路径。文本文件中列出文件的顺序决定了连接的顺序。
使用 FFmpeg 调整视频大小
如果视频的分辨率非常高,例如您有一段 4K 视频,但播放器只支持 1080p,您可能需要调整视频的大小。要使用 FFmpeg 调整视频大小,可以使用 -vf(视频过滤器)选项设置缩放过滤器。
下面是一个模板示例:
1 ffmpeg -i input.mp4 -vf "scale=w:h" resized.mp4
用您的特定值替换占位符:
- input.mp4:将其替换为输入视频文件的路径。
- -vf “scale=w:h”: 将 w 和 h 替换为输出视频的宽度和高度。您也可以设置单一维度,如 -vf “scale=-1:720”,以保持原始宽高比。
- resized.mp4:将其替换为所需的输出视频文件名和扩展名。
下面是一个将测试视频调整为 720p 分辨率并保持纵横比的命令示例:
1 ffmpeg -i dayanzai-ko.mp4 -vf "scale=-1:720" resized.mp4
使用 FFmpeg 压缩视频
视频文件通常很大,会占用硬盘、云存储的大量空间,或需要很长时间才能下载。要使用 FFmpeg 压缩视频,通常需要使用更高效的视频编解码器或调整其他编码参数来重新编码。
有许多不同的方法可以做到这一点,但这里有一个示例模板可以让你开始:
1 ffmpeg -i input.mp4 -c:v libx264 -crf 25 -c:a aac -b:a 128k compressed.mp4
以下是您可以替换的选项和占位符:
- input.mp4:将其替换为输入视频文件的路径。
- -c:v libx264: 该选项将视频编解码器设置为 H.264 (libx264)。H.264 是一种广泛使用的高效视频编解码器。
- -crf 25:该选项控制视频质量。CRF(恒定速率因子)值越低,质量越高,但文件大小越大。典型值从 18 到 28 不等,23 是一个合理的默认值。
- -c:a aac -b:a 128k: 这些选项将音频编解码器设置为比特率为 128 kbps 的 AAC。请根据自己的喜好调整比特率。
- compressed.mp4:将其替换为所需的输出文件名和扩展名。
通过测试文件,我们可以使用此命令将视频从 31.9MB 压缩到 6.99MB:
1 ffmpeg -i dayanzai-ko.mp4 -c:v libx264 -crf 25 -c:a aac -b:a 128k compressed.mp4
使用 FFmpeg 将一系列图像转换成视频
谁不喜欢视频蒙太奇?使用 FFmpeg,只需使用通配符输入 glob 模式和 -framerate 选项,就能轻松将一系列图像转换成视频。
下面是一个命令示例:
1 ffmpeg -framerate 1 -pattern_type glob -i 'path/to/images/*.jpg' -c:v libx264 -pix_fmt yuv420p montage.mp4
用您的特定值替换占位符:
- -framerate 1:设置输出视频的帧速率。根据您的偏好调整该值(如每秒 1 张图片)。省略帧频将默认为 25 帧。
- -pattern_type glob -i ‘path/to/images/*.jpg’: 使用 glob 模式指定输入图像。请根据图像文件的位置调整模式和路径。
- -c:v libx264 -pix_fmt yuv420p: 这些选项指定了视频编解码器(libx264)和像素格式。请根据自己的偏好和兼容性要求调整这些选项。
- montage.mp4:将其替换为所需的输出文件名和扩展名。
使用 FFmpeg 将视频转换为 GIF
GIF 是一种流行的动画格式,用于 WhatsApp 或 Facebook Messenger 等消息应用程序中的备忘录,也是在电子邮件中发送动画的好方法。使用 FFmpeg 将视频转换和优化为 GIF 的方法有很多,但这里有一个简单的命令模板供您开始使用:
1 ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif animation.gif
以下是所用选项和替换内容的明细:
- input.mp4:将其替换为输入视频文件的路径。
- -vf “fps=10,scale=320:-1:flags=lanczos”: 这将为 GIF 转换设置视频滤镜。fps 选项设置每秒帧数(根据需要调整数值),scale 指定输出尺寸。flags=lanczos 部分用于优化质量。
- -c:v gif: 指定输出的视频编解码器,本例中为 GIF。
- animation.gif: 将其替换为所需的输出文件名和扩展名。
下面是一个使用测试文件的示例:
1 ffmpeg -i dayanzai-ko.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif animation.gif
使用 FFmpeg 加快或减慢视频速度
要在 FFmpeg 中加快或减慢视频速度,可以使用 setpts 过滤器。setpts 过滤器可调整视频帧的呈现时间戳,从而有效改变视频的速度。以下是加快和减慢视频速度的示例。
加快视频速度
要将视频速度提高一倍,请使用 0.5 的 setpts 值:
1 ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" fast.mp4
降低视频速度
要将视频的速度减慢一个系数(例如减慢 2 倍),可以使用大于 1 的 setpts 值:
1 ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" slow.mp4
这些命令通过操作演示时间戳 (PTS) 来调整视频速度。示例中的 0.5 和 2.0 表示速度因子。您可以尝试使用不同的速度因子来达到所需的效果。
下面是一个将测试文件速度提高一倍的命令示例:
1 ffmpeg -i dayanzai-ko.mp4 -filter:v "setpts=0.5*PTS" fast.mp4
请注意,只有视频被加速,音频没有被加速。
开始探索
本指南提供了如何入门和使用 FFmpeg 完成各种视频处理任务的快速入门指南,以及一些简单的示例。FFmpeg 的选项和可能性非常多,值得探索 FFmpeg 文档和 FFmpeg wiki,以进一步了解该工具及其功能。
FFmpeg 的主要优势在于它的多功能性。不过,它的学习曲线也很陡峭,其中的命令和选项令人生畏。如果您想将 FFmpeg 作为工作流程、流水线或应用程序的一部分进行商业运行,您还需要考虑托管软件、管理更新和安全,以及扩展基础设施以满足需求。
文章名称:《如何使用 FFmpeg 视频转换与音频处理技巧》
文章固定链接:http://www.dayanzai.me/how-to-use-ffmpeg.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
猜你喜欢
- 2024-09-19彩绘精灵 7 汉化版 ArtRage Vitae 7.1.4 x64 中文多语免费版
- 2016-02-18为你的键盘装上格逼效果 Tickeys 1.1.1 绿色中文版
- 2023-06-30网站开发人员的 7 个基本 SEO 重要注意事项
- 2024-09-25Office 办公套件 OfficeSuite Premium 9.00.57661 x64 中文多语免费版
- 2024-06-02开源 AI 图像放大增强工具 Upscayl 2.11.5 x64 中文绿色汉化版
相关推荐
- 2021-10-07如何在启动时自定义 Windows 沙盒
- 2024-09-25注册表清理优化工具 Wise Registry Cleaner X 11.1.7 Build 722 中文多语免费版
- 2023-04-15OpenAI 推出漏洞赏金计划,你如何参与?
- 2024-09-10AMD 锐龙处理器超频工具 AMD Ryzen Master 2.14.0 Build 3205 中文免费版
- 2019-08-22如何使用 F12 开发者工具自动批量删除新浪微博