用于音视频流的python gstreamer管道

2024-10-01 11:39:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有我工作的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"

我现在正在尝试使用python。到目前为止,我做得很好,但我现在被困在上面写着flvmux name=mux alsasrc,因为没有!在mux和ALASRC之间

这是我的python代码。在

^{pr2}$

所以这就是我被困的地方,需要帮助。在


Tags: name命令truetargetsizerawsyncmax
1条回答
网友
1楼 · 发布于 2024-10-01 11:39:16

我使用parse_launch函数,但这可能是作弊:

pipe = gst.parse_launch('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" name="thesink"')

sink = pipe.get_by_name('thesink')
sink.set_property('location', 'rtmp://server3')

相关问题 更多 >