如何在gstreamer中混合两个rtmp流?
源:nginx-rtmp 摄像头 - h.264/speex 接收器:nginx-rtmp
GStreamer 0.10 或 1.0
---------- -------
| rtmp src |----->| |
---------- | | ----------
| video |----->| rtmp sink|
---------- | mixer | ----------
| rtmp src |----->| |
---------- | |
-------
您可以使用 videomixer、videoscale 和 videobox 来实现此目的。
这个答案应该会给你一些想法:我可以使用 Gstreamer API 来合并 2 个视频吗?
我在 Red5 服务器(Santosh、Amit)上手动发布两个流,使用以下管道我可以混合两个流并在 Red5 上发布另一个流(测试)。
GST_DEBUG=videomixer:6 gst-launch-1.0 videomixer sink_1::xpos=10\ sink_1::ypos=0 sink_2::xpos=10 sink_1::ypos=220 sink_3::xpos=50 \sink_1::ypos=120 name=mix ! videoconvert ! video/x-raw, height=500, \width=1000 ! x264enc tune=zerolatency bitrate=2000 ! flvmux ! rtmpsink \location='rtmp://xx.xx.xx.xx/oflaDemo/Test live=1' rtmpsrc name=src1 \location='rtmp://xx.xx.xx.xx/oflaDemo/Amit live=1' ! decodebin ! \mix.sink_1 rtmpsrc name=src2 \location='rtmp://xx.xx.xx.xx/oflaDemo/Santosh live=1' ! decodebin !\ mix.sink_2