Easy-Tech#017#——FFmpeg
FFmpeg 是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。
审校者注:
FFmpeg项目由 Fabrice Bellard在2000年创立,到目前为止,经历了21年的演化。FFmpeg社区和其他多媒体项目互动频繁,这也是它成功的原因之一。在创立之初,有很多开发者同时活跃在Mplayer项目,到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。2004年以后,FFmpeg社区基本由Michael Niedermayer领导。
在本文中,我将带你快速了解FFmpeg以及这个软件的神奇用途,未来文章中我们将介绍FFmpeg的更多内容。
如何安装FFmpeg?
安装FFmpeg超级简单。如果你使用的是Windows系统,你可以在这里下载最新的FFmpeg可执行文件:
https://ottverse.com/ffmpeg-builds/
这个页面每周三都会更新最新的FFmpeg版本。
如果你使用的是Mac,那么你可以使用homebrew指令来安装。而Linux系统可以使用apt包管理器轻松安装。
如果你赶时间,可以使用homebrew这个Mac安装指令:
brew install ffmpeg
Linux则使用apt包管理器安装:
sudo apt install ffmpeg
当然,你也可以下载FFmpeg源代码,从零开始配置你想要使用的编解码器。而这么做,可以让你拥有一个适合自己的迷你FFmpeg版本。
审校者注:
FFmpeg社区的文档相对来说比较丰富,如果需要自行定制编译FFmpeg,https://trac.ffmpeg.org/wiki/CompilationGuide 是一个非常好的入手地方。
FFmpeg有什么用途?
这是一个很棒的问题,但是也非常难回答。因为FFmpeg在不停添加新的用例、工具和特性,这可以将FFmpeg扩展出无数个用途。
下面是FFmpeg的几个主要用途:
视频处理
FFmpeg可以用于各种视频处理任务,比如去噪、模糊视频、色彩转换,视频旋转、提取帧、缩放视频尺寸等。这些任务对于大部分视频处理、压缩和交付来说至关重要。
未来我们将在更多文章中介绍这些功能。
使用FFmpeg来堆叠视频
视频压缩
FFmpeg对视频压缩的支持非常棒,很多流媒体公司的视频生产系统都在使用FFmpeg,这是一个公开的秘密。因为它真的非常稳定!
FFmpeg 包含为各种编解码器[如 JPEG、MPEG-1/2/4、H263+AAC (MPEG)、Theora (Ogg Vorbis)、AVS+、VP8 (WebM)、H.264/AVC、HEVC、AV1 等]提供接口的库,你可以根据需要使用它们来压缩、转码或解码视频。
支持视频打包
对于OTT系统厂商和开发者来说,FFmpeg还完全支持使用HLS和MPEG-DASH打包视频,它还可以配置为使用RTMP或其他协议来传输视频。
支持音频、视频容器格式
FFmpeg同样广泛支持各种容器格式,可以用来读、写及转换各种容器格式,比如avi、mp4、mp3、wma、wav、ts、flv、mkv以及许多其他未知格式。
ffprobe
FFmpeg 还可用于了解视频结构并对其进行分析。FFmpeg库构建了一个名为 ffprobe 的命令行,可用于查看和分析视频文件。你可以使用 ffprobe 从视频中提取各种元数据、计算帧数、查找 IDR 帧的位置等等。未来的文章中会详细介绍ffprobe的强大功能。
ffplay
最后,FFmpeg中还有一个播放视频的命令行工具ffplay,无需任何花哨的视频播放软件,直接使用它就可以播放视频。
为什么FFmpeg如此受欢迎?
很多公司使用FFmpeg,主要是因为它的开源属性(意味着任何人都能修改它),使其非常适合扩展到各种硬件规格(如各种形状、大小和规格的 Android 设备)的不同系统中。
在大部分Linux发行版本的仓库中都可以找到FFmpeg,并且主流桌面操作系统都可以进行安装。FFmpeg旨在帮助用户以最省力的方式来处理最广泛的媒体格式。因此,如果你正在寻找一种将FLAC文件转换为MP3的好方法,那就是它!
结 语
FFmpeg是视频处理和压缩工具箱中一个非常强大的库。它具有非常多的功能并且开源,你还可以修改源代码并扩展它的功能。如果你想要对FFmpeg有更多了解,可以期待后续的文章。