From 5c0570c8e66bc1e2e8167e8660305a28b7ba659b Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Tue, 29 Jul 2014 23:44:07 +0200 Subject: demonstrate use of bins for dynamic input configuration --- voctocore/videomix.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/voctocore/videomix.py b/voctocore/videomix.py index 1426cb4..4ed9d25 100644 --- a/voctocore/videomix.py +++ b/voctocore/videomix.py @@ -10,17 +10,26 @@ class Videomix: self.pipeline = Gst.parse_launch(""" videomixer name=livevideo ! autovideosink input-selector name=liveaudio ! autoaudiosink - - uridecodebin name=cam0 uri=file:///home/peter/122.mp4 - uridecodebin name=cam1 uri=file:///home/peter/10025.mp4 - - cam0. ! videoconvert ! videoscale ! videorate ! video/x-raw,width=1024,height=576,framerate=25/1 ! livevideo. - cam1. ! videoconvert ! videoscale ! videorate ! video/x-raw,width=1024,height=576,framerate=25/1 ! livevideo. - - cam0. ! audioconvert ! liveaudio. - cam1. ! audioconvert ! liveaudio. """) + uris = ('file:///home/peter/122.mp4', 'file:///home/peter/10025.mp4',) + for idx, uri in enumerate(uris): + # create a bin for camera input + camberabin = Gst.parse_bin_from_description(""" + uridecodebin name=input + input. ! videoconvert ! videoscale ! videorate ! video/x-raw,width=1024,height=576,framerate=25/1 ! identity name=video_src + input. ! audioconvert name=audio_src + """, False) + + # configure camera input + camberabin.get_by_name('input').set_property('uri', uri) + + # add to pipeline and link to mixers + self.pipeline.add(camberabin) + camberabin.get_by_name('video_src').link(self.pipeline.get_by_name('livevideo')) + camberabin.get_by_name('audio_src').link(self.pipeline.get_by_name('liveaudio')) + + # demonstrate some control liveaudio = self.pipeline.get_by_name('liveaudio') liveaudio.set_property('active-pad', liveaudio.get_static_pad('sink_0')) -- cgit v1.2.3