mirror of
https://github.com/matthew1000/gstreamer-cheat-sheet.git
synced 2024-11-22 08:20:59 +00:00
33 lines
901 B
Python
33 lines
901 B
Python
|
#!/usr/bin/env python
|
|||
|
# Shows how two pipelines can be connected, using proxysink/proxysrc.
|
|||
|
# It will output a test audio sound.
|
|||
|
# Python equivalent of example at https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-proxysrc.html
|
|||
|
import gi
|
|||
|
gi.require_version('Gst', '1.0')
|
|||
|
from gi.repository import GObject, Gst
|
|||
|
import os
|
|||
|
|
|||
|
Gst.init(None)
|
|||
|
mainloop = GObject.MainLoop()
|
|||
|
|
|||
|
pipe1 = Gst.parse_launch("audiotestsrc is-live=1 ! proxysink name=psink")
|
|||
|
psink = pipe1.get_by_name('psink')
|
|||
|
|
|||
|
pipe2 = Gst.parse_launch("proxysrc name=psrc ! autoaudiosink")
|
|||
|
psrc = pipe2.get_by_name('psrc')
|
|||
|
|
|||
|
psrc.set_property('proxysink', psink)
|
|||
|
|
|||
|
clock = Gst.SystemClock.obtain()
|
|||
|
pipe1.use_clock(clock)
|
|||
|
pipe2.use_clock(clock)
|
|||
|
clock.unref()
|
|||
|
|
|||
|
pipe1.set_base_time(0)
|
|||
|
pipe2.set_base_time(0)
|
|||
|
|
|||
|
pipe1.set_state(Gst.State.PLAYING)
|
|||
|
pipe2.set_state(Gst.State.PLAYING)
|
|||
|
|
|||
|
mainloop.run()
|