У меня есть рабочая команда gstreamer, т.е.
v4l2src ! stamp sync-margin=1 sync-interval=1 ! videorate ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! ffmpegcolorspace ! x264enc bitrate=512 subme=4 b-pyramid=true weightb=true ! queue2 ! flvmux name=mux alsasrc ! audio/x-raw-int,rate=11025,channels=2,depth=16 ! audiorate ! queue2 max-size-buffers=600 max-size-bytes=0 max-size-time=0 ! audioconvert ! lamemp3enc target=1 bitrate=40 mono=true encoding-engine-quality=1 target=bitrate ! mux. mux. ! queue2 ! rtmpsink location="rtmp://server2"
Я сейчас пытаюсь заставить его работать с питоном. Пока что я все сделал хорошо, но теперь застрял там, где написано flvmux name = mux alsasrc Как нет! между mux и alsasrc
Вот мой код Python.
import sys, os
import pygst
pygst.require("0.10")
import gst
import pygtk
import gtk
class Main:
def __init__(self):
self.pipeline = gst.Pipeline("mypipeline")
self.src = gst.element_factory_make("v4l2src", "src")
self.pipeline.add(self.src)
self.stmp = gst.elemet_factory_make("stamp", "stmp")
self.stmp.set_property("sync-margin", 1)
self.stmp.set_property("sync-interval", 1)
self.pipeline.add(self.stmp)
self.src.link(self.stmp)
self.vidrate = gst.element_factory_make("videorate", "vidrate")
self.pipeline.add(self.vidrate)
self.stmp.link(self.vidrate)
self.vfilter = gst.element_factory_make("capsfilter", "vfilter")
self.vfilter.set_property('caps', gst.caps_from_string('video/x-raw-yuv,width=320,height=240,framerate=30/1'))
self.pipeline.add(self.vfilter)
self.vidrate.link(self.vfilter)
self.ffmpeg = gst.element_factory_make("ffmpegcolorspace","ffmpeg")
self.pipeline.add(self.ffmpegcolorspace)
self.vfilter.link(self.ffmpegcolorspace)
self.h264 = gst.element_factory_make("x264enc","h264")
self.h264.set_property("bitrate", 256)
self.h264.set_property("subme", 4)
self.h264.set_property("b-pryamid", True)
self.h264.set_property("weightb", True)
self.penipeline.add(self.h264)
self.ffmpeg.link(self.h264)
self.q2 = gst.element_factory_make("queue2","q2")
self.pipeline.add(self.q2)
self.h264.link(self.q2)
self.flvmux = gst.element_factory_make("flvmux","flvmux")
self.flvmux.set_property("name", "mux")
#self.flvmux.set_property("alsasrc", "")
self.pipeline.add(self.flvmux)
self.q2.link(self.flvmux)
self.alsasrc = gst.element_factory_make("alsasrc","alsasrc")
self.pipeline.add(self.alsasrc)
self.flvmux.link(self.alsasrc)
Так что это место, где я застрял и мне нужна помощь.