环境搭建:Linux下GStreamer安装、Windows下GStreamer安装、验证安装、常用工具
好,咱们正式开始动手了。这一章我带你把环境搭起来。说实话,很多初学者在安装这一步就卡住了,然后就开始怀疑人生。其实没那么复杂,咱们一步步来。
Linux 下安装 GStreamer
我个人习惯用 Ubuntu,毕竟做多媒体开发,Ubuntu 的包管理确实省心。如果你用的是其他发行版,原理一样,换一下包管理器命令就行。
在 Ubuntu/Debian 上,安装 GStreamer 核心库和常用插件,只需要这几条命令:
# 更新包索引
sudo apt update
# 安装核心库
sudo apt install libgstreamer1.0-0 gstreamer1.0-tools
# 安装常用插件(base、good、bad、ugly)
sudo apt install gstreamer1.0-plugins-base
sudo apt install gstreamer1.0-plugins-good
sudo apt install gstreamer1.0-plugins-bad
sudo apt install gstreamer1.0-plugins-ugly
# 安装开发库(如果你要写代码)
sudo apt install libgstreamer1.0-dev
sudo apt install libgstreamer-plugins-base1.0-dev
嗯,这里要注意一下。插件分成了 base、good、bad、ugly 四个等级。base 是最稳定的,good 是质量不错的,bad 是可能有问题的,ugly 是涉及专利问题的。我在项目中遇到过,有些格式比如 MP3 编码,就在 ugly 里。不是它不好,是专利问题。
Windows 下安装 GStreamer
Windows 下安装稍微麻烦一点,但也不难。GStreamer 官方提供了 MSI 安装包,直接下载就行。
访问 gstreamer.freedesktop.org,找到 Windows 版本。我建议你下载 MinGW 版本,因为 MSVC 版本有时候跟一些第三方库兼容性不太好。当然,如果你用 Visual Studio 开发,那就选 MSVC 版本。
安装时注意两点:
- 安装路径不要有中文和空格,我习惯装到
C:\gstreamer - 安装完成后,需要手动添加环境变量
GSTREAMER_1_0_ROOT_MSYS_X86_64指向你的安装目录 - 把
%GSTREAMER_1_0_ROOT_MSYS_X86_64%\bin加到 PATH 里
为什么会这样?因为 Windows 不像 Linux 那样有统一的包管理,环境变量得自己配。我曾经在这上面栽过跟头,装完了发现 gst-launch-1.0 命令找不到,折腾了半天才发现是 PATH 没配好。
验证安装
装完了,怎么知道装没装好?很简单,打开终端(Linux 下是 bash,Windows 下是 cmd 或 PowerShell),输入:
gst-launch-1.0 --version
如果看到类似这样的输出,就说明安装成功了:
gst-launch-1.0 version 1.22.0
GStreamer 1.22.0
再试一个更直观的:
gst-launch-1.0 videotestsrc ! autovideosink
这个命令会弹出一个窗口,显示一个测试视频图案。如果你看到了彩色的条纹在动,恭喜你,环境完全 OK 了。
autovideosink 换成 d3dvideosink 或 directdrawsink。
常用工具:gst-launch-1.0 和 gst-inspect-1.0
这两个工具是你以后天天要用的,咱们先认识一下。
gst-launch-1.0
说白了,这是一个命令行版的流水线搭建工具。你不需要写代码,用一行命令就能把视频源、滤镜、编码器、输出串起来。比如:
gst-launch-1.0 filesrc location=test.mp4 ! decodebin ! videoconvert ! autovideosink
这条命令的意思是:读取 test.mp4 文件,解码,转换颜色格式,然后显示出来。你想想看,如果没有 GStreamer,你要写多少代码才能实现这个功能?
我个人习惯先用 gst-launch-1.0 测试流水线,确认没问题了再写代码。这样调试效率高很多。
gst-inspect-1.0
这个工具用来查看插件信息。比如你想知道 videotestsrc 有哪些参数可以调:
gst-inspect-1.0 videotestsrc
它会输出一大堆信息,包括插件的描述、支持的格式、可设置的属性等等。我在项目中遇到不熟悉的插件时,第一件事就是跑一下 gst-inspect,看看它到底能干什么。
还有一个常用用法,查看系统里所有可用的插件:
gst-inspect-1.0 | grep -i "video"
这样就能过滤出所有跟视频相关的插件。嗯,这个命令我一天能用几十次。
常用插件速查表
| 插件名称 | 功能 | 所属类别 |
|---|---|---|
| videotestsrc | 生成测试视频信号 | base |
| filesrc | 从文件读取数据 | base |
| decodebin | 自动检测并解码 | base |
| videoconvert | 颜色格式转换 | base |
| videoscale | 视频缩放 | base |
| x264enc | H.264 编码 | ugly |
| avenc_mpeg4 | MPEG-4 编码 | bad |
核心要点:环境搭建其实就三步——安装、配路径、验证。别想复杂了。后面咱们所有的实战内容,都基于这个环境。如果安装过程中遇到问题,先检查版本号,再检查插件列表,90% 的问题都能定位。
好了,环境搭好了,工具也认识了。下一章咱们就开始真正干活了——用 GStreamer 做视频格式转换。到时候我会拿一个真实的项目案例来讲,保证你学完就能用上。