文章目录
1. Goal
本教程提供了值得了解的Gstreamer元素列表。它们有强大的一体化元素,能够轻松的构建复杂的管道(如Playbin),也有在调试时非常有用的辅助小元件。
2. Elements
2.1 Bins
Bin元素可以看作独立的元素,它们可以实例化所有必要的内部管道来完成任务。
1. playbin
它管理媒体播放的所有方面,从源到显示,通过多路复用和解码。它灵活,并具有很多选项。更多细节参照教程13。
2. uridecodebin
此元素将数据从URI解码为原始媒体。它选择可以处理给定URI的源元素,并将其链接到decodebin元素。它的作用就像一个多路复用器,所以它提供了很多在流媒体中的source pad。
#video
gst-launch-1.0 uridecodebin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm ! videoconvert ! autovideosink
#audio
gst-launch-1.0 uridecodebin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm ! audioconvert ! autoaudiosink
3. decodebin
该元素通过自动插入自动构建可用的解码器和复用器,直到获得原始介质。它内部有uridecodebin,方便使用,能获得合适的源元素。它替换了旧的decodebin元素。它的表现像多路复用器,所以提供了在媒体中发现流的许多source pad。
gst-launch-1.0 souphttpsrc location=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm ! decodebin ! autovideosink
2.2 File input/output
1. filesrc
该元素读取一个本地文件并生成任意cap的媒体。如果想获得正确的caps,可以通过typefind元素或者将filesrc的typefind属性设置为TRUE来探索流。
gst-launch-1.0 filesrc location=f:\\media\\sintel\\sintel_trailer-480p.webm ! decodebin ! autovideosink
2. filesink
此元素写入其所收到的所有媒体的文件。使用location属性指定文件名。
gst-launch-1.0 audiotestsrc ! vorbisenc ! oggmux