import pygst import gst import tempfile import sys class Camera(object): def __init__(self, *arguments): # snap_file, self.snap_path = tempfile.mkstemp() self.pipeline = gst.Pipeline("mypipeline") self.bus = self.pipeline.get_bus() v4l2src = gst.element_factory_make("v4l2src", "video") self.pipeline.add(v4l2src) enc = gst.element_factory_make("jpegenc", "enc") self.pipeline.add(enc) sink = gst.element_factory_make("filesink", "sink") self.pipeline.add(sink) v4l2src.link(enc) v4l2src.set_property("num-buffers", 1) enc.link(sink) sink.set_property("location", *sys.argv[1:]) def Snap(self): self.pipeline.set_state(gst.STATE_PLAYING) self.bus.poll(gst.MESSAGE_EOS, -1) self.pipeline.set_state(gst.STATE_NULL) if __name__ == '__main__': c = Camera() c.Snap() # print c.snap_path