文章

gstreamer插件编写指南:编写解复用器和解析器

解复用器是需要特别注意的 1 对 N 元件。它们负责将未经解析的原始数据打上时间戳,转换成基本的视频或音频流。这里将提到几个罪魁祸首,并提供常见的解决方案。解析器是只有一个源衬底的解多路复用器。此外,它们只会将数据流切割成缓冲区,而不会接触其他数据。

如前文“能力集协商”中所述,解复用器应使用固定能力集,因为其数据类型不会改变。

正如“不同的调度模式”中所讨论的,解复用器元件可以用多种方式写入:

  • 它们可以运行自己的任务,成为流水线的驱动力。这对于需要随机访问的元素(例如 AVI 解多路复用器)尤其有效。

  • 它们还能以推送模式运行,即由上游元素驱动流水线。这对于可能来自网络的数据流(如 Ogg)尤其有效。

此外,理论上也可以编写随机存取模式的音频解析器。虽然如果您的元素只接受一种模式,简单的回放大多可以正常工作,但可能需要实现多种模式才能与编辑等各种应用程序结合使用。此外,如果采用多种模式,性能可能会更好。请参阅“不同的调度模式”,了解元素如何接受多种调度模式。

本文由作者按照 CC BY 4.0 进行授权