经过一年半的发展 宣布发布新版GStreamer 1.20, 一组用 C 语言编写的跨平台组件,用于构建范围广泛的多媒体应用程序,从媒体播放器和音频/视频文件转换器,到 VoIP 应用程序和流媒体系统。
在这个新版本中,新编码器的加入以及对混合音频和视频的支持等方面的改进都很突出。
GStreamer 1.20的主要新功能
在这个新版本中,提到了 GitLab 之上的开发已转向使用单个公共存储库 到所有模块。
至于这个新版本中呈现的新颖性,应该注意的是 添加了一个新的高级库 GstPlay, 它取代了 GstPlayer API 并提供了类似的播放内容功能,只是它使用消息总线而不是 GObject 信号来通知应用程序。
还强调了 增加了对 SMPTE 2022-1 2-D 机制的支持 (前向纠错),加上VP8、VP9、H.265编解码器的encodebin和transcodebin,实现了智能编码模式(“智能编码”),其中只在必要时进行转码,其余时间,现有传输被转发。
另一个引人注目的变化是 添加了在中间帧级别解码输入数据的能力 (子帧),它允许您在不等待完整帧的情况下开始解码。 此优化与 OpenJPEG JPEG 2000、FFmpeg H.264 和 OpenMAX H.264/H.265 解码器兼容。
除了 RTP、WebRTC 和 RTSP 协议的视频解码之外,它还提供丢包、数据损坏和关键帧请求的自动处理。 添加了对动态更改编解码器数据的支持 到集装箱包装工 媒体 mp4 和 Matroska。
另一方面,强调 增加了对解码信息的支持 透明度 以 WebM 格式, 允许您播放具有透明区域的 VP8/VP9 视频,以及支持在编码配置文件中设置额外的应用程序特定属性,以及使用 CUDA 进行色彩空间转换、元素缩放和缩放元素加载的能力。
, 其他突出的变化 这个新版本:
- payloader 和 payloader 类统一支持使用额外的 RTP 标头。
- 改进了与 WebRTC 的兼容性。
- 添加了创建碎片化 mp4 媒体箱的模式。
- 除了缓冲区和缓冲区列表之外,还添加了对 AppSink API 的事件支持。
- 向 AppSrc 添加了内部队列的附加设置。
- 更新了 Rust 语言绑定并添加了 26 个用 Rust (gst-plugins-rs) 编写的新插件。
- 添加了 aesdec 和 aesenc 元素,用于使用 AES 算法进行加密和解密。
添加了 fakeaudiosink 和 videocodectestsink 元素用于测试和调试。 - 改进了创建 GStreamer 极简版本的工具。
添加了使用 FFmpeg 5.0 进行编译的功能。 - 对于 Linux,实现了 MPEG-2 和 VP9 编解码器的无状态版本。
- 对于 Windows,基于 Direct3D11/DXVA 的解码器增加了对 AV1 和 MPEG-2 的支持。
- Souphttpsrc 插件兼容 libsoup2 和 libsoup3。
- Composer 支持多线程模式下的视频转换和混合。
最后 如果您想了解更多 关于这个新版本的 Gstreamer,你可以查看更新日志 在下面的链接中。
如何在Ubuntu及其衍生产品上安装Gstreamer 1.20?
如果您有兴趣在发行版上安装Gstreamer 1.18 您可以按照下面分享的步骤进行操作。
该过程对于新版本的Ubuntu 20.04以及具有支持的旧版本均有效。
安装, 我们只需要打开一个终端 (Ctrl + Alt + T) 然后在其中键入以下命令:
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
并准备好了,他们已经在系统上安装了Gstreamer 1.16。