#!/usr/bin/python import pygst pygst.require("0.10") import gst, gobject, time import pygtk import gtk class Main: def __init__(self): self.pipeline = gst.Pipeline("mypipeline") self.filesrc = gst.element_factory_make("filesrc", "source") self.pipeline.add(self.filesrc) self.filesrc.set_property("location", "/home/sac/record.ts") self.decode = gst.element_factory_make("ffdemux_mpegts", "decode") self.decode.connect("pad-added", self.OnDynamicPad) self.pipeline.add(self.decode) self.filesrc.link(self.decode) bus = self.pipeline.get_bus() bus.add_signal_watch() bus.connect('message', self.on_message) self.pipeline.set_state(gst.STATE_PLAYING) def OnDynamicPad(self, dbin, pad): print "OnDynamicPad Called!" print pad.get_name() sink = gst.element_factory_make("filesink", "sink-"+pad.get_name()) sink.set_property("location","/tmp/output_"+pad.get_name()+".raw") queue = gst.element_factory_make("queue", "queue-"+pad.get_name()) self.pipeline.add(queue) self.pipeline.add(sink) pad.link(queue.get_pad("sink")) queue.link(sink) queue.set_state(gst.STATE_PAUSED) sink.set_state(gst.STATE_PAUSED) def on_message(self, bus, message): print message t = message.type gobject.threads_init() start=Main() while (True): time.sleep(3)