Gstreamer VLC不在3条管道中的1条管道上工作,这些管道具有相同的编码和从gst rtsp服务器的数据支付

Gstreamer VLC不在3条管道中的1条管道上工作,这些管道具有相同的编码和从gst rtsp服务器的数据支付,gstreamer,python-gstreamer,Gstreamer,Python Gstreamer,我这里有一件奇怪的事情,我有3个不同的媒体工厂添加到我的RTSP服务器。其中一个(下面第三个)我只能在另一台机器上玩gst launch 下面的前两个在vlc和gst启动时运行良好,我不明白的是为什么第三个不工作,所有管道只有不同的源,编码和depay在所有3个管道上都是相同的 使用vlc和gst启动在其他机器上工作 compositor name=mix sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=0 sink_2::

我这里有一件奇怪的事情,我有3个不同的媒体工厂添加到我的RTSP服务器。其中一个(下面第三个)我只能在另一台机器上玩gst launch

下面的前两个在vlc和gst启动时运行良好,我不明白的是为什么第三个不工作,所有管道只有不同的源,编码和depay在所有3个管道上都是相同的

使用vlc和gst启动在其他机器上工作

compositor name=mix sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=0 sink_2::xpos=0 sink_2::ypos=480 sink_3::xpos=640 sink_3::ypos=480 ! queue max-size-time=0 ! videoconvert ! videoscale ! video/x-raw, width=1920, height=1080 ! x264enc key-int-max=5  speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 filesrc location=error.jpg ! jpegdec ! imagefreeze ! textoverlay text="<span foreground='#2f2e41' >K1 Camera not reachable, check camera or IP-Address or Hostname</span>" valignment=top font-desc="Arial, 13" ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. filesrc location=error.jpg ! jpegdec ! imagefreeze ! textoverlay text="<span foreground='#2f2e41' >K2 Camera not reachable, check camera or IP-Address or Hostname</span>" valignment=top font-desc="Arial, 13" ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix.
GST-版本:(主要=1,次要=14,微观=5,纳米=0)

VLC日志
satip调试:尝试打开'rtsp:///42342'
satip调试:连接到主机“”
主调试:网络:连接到端口554
主调试:连接成功(套接字=1560)
主调试:net:打开0.0.0.0数据报端口9140
主调试:net:打开0.0.0.0数据报端口9141
satip错误:无法播放RTSP会话
satip错误:无法拆除RTSP会话
主调试:网络:连接到端口554
主调试:连接成功(套接字=1636)
access\u realrtsp警告:Cseq不匹配,得到1,假设为0
访问\u realrtsp调试:rtsp已连接
access\u realrtsp警告:目前仅支持real/helix rtsp服务器
主调试:没有匹配的访问模块
主调试:死输入
qt调试:IM:删除输入
主调试:在没有请求的情况下更改项目(当前0/1)
主调试:无需播放

如何修复此问题?

首先,您应该检查VLC日志,看看它不喜欢什么。由于您的上一个具有更多输入,我可以想象您的合成器具有不同的配置

出乎意料的是,我猜在您的上一个文件中,合成器输出了4:4:4数据,并创建了一个4:4:4的H.264文件流。玩家很少支持这些流


如果是这种情况,您应该确保4:2:0格式进入
x264enc
或在输出上限上定义非4:4:4 H.264目标配置文件。

谢谢您的重播,我检查了它,它是4:2:0,也是为了确保将来我添加格式属性:
video/x-raw,宽度=1920,高度=960,format=I420
x264enc
之前,我编辑了问题并附加了VLC日志,但没有真正的信息…好的,VLC日志的提示很好,经过更多的调试,我发现VLC日志中有超时条目,播放第三流需要更多的时间。随着--ipv4超时参数的增加,我能够解决这个问题。
compositor name=mix sink_0::xpos=0 sink_0::ypos=0 sink_2::xpos=0 sink_2::ypos=480 sink_4::xpos=0 sink_4::ypos=960 ! queue max-size-time=0 ! videoconvert ! videoscale ! video/x-raw, width=1920, height=480 ! x264enc key-int-max=5  speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/mjpg/video.mjpg" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/mjpg/video.mjpg" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/mjpg/video.mjpg" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix.
compositor name=mix sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=0 sink_2::xpos=1280 sink_2::ypos=0 sink_2::xpos=0 sink_2::ypos=480 sink_3::xpos=640 sink_3::ypos=480 sink_4::xpos=1280 sink_4::ypos=480 ! queue max-size-time=0 ! videoconvert ! videoscale ! video/x-raw, width=1920, height=960 ! x264enc key-int-max=5  speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 rtspsrc latency=200 user-id="admin" user-pw="enercon525244" location="rtsp://<ip-removed>/Streaming/channels/102" ! rtph264depay ! h264parse ! avdec_h264 ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/control/faststream.jpg?stream=full&preview&camera=left&size=640x480&fps=4.0" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/control/faststream.jpg?stream=full&preview&camera=right&size=640x480&fps=4.0" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/control/faststream.jpg?stream=full&preview&camera=left&size=640x480&fps=4.0" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix. souphttpsrc ssl-strict=false is-live=true user-id="<user-removed>" user-pw="<pwd-removed>" location="http://<ip-removed>/control/faststream.jpg?stream=full&preview&camera=right&size=640x480&fps=4.0" do-timestamp=true ! multipartdemux ! jpegdec ! videoscale ! video/x-raw, width=640, height=480 ! queue ! mix.
0:00:15.140129410 25881      0x2c59400 ERROR             rtspclient rtsp-client.c:1718:handle_play_request: client 0x342a240: media not found
0:00:15.163301390 25881      0x2c59400 ERROR             rtspclient rtsp-client.c:1270:handle_teardown_request: client 0x342a240: no media for uri
VLC log
satip debug: try to open 'rtsp://<ip-removed>/42342'
satip debug: connect to host '<ip-removed>'
main debug: net: connecting to <ip-removed> port 554
main debug: connection succeeded (socket = 1560)
main debug: net: opening 0.0.0.0 datagram port 9140
main debug: net: opening 0.0.0.0 datagram port 9141
satip error: Failed to play RTSP session
satip error: Failed to teardown RTSP session
main debug: net: connecting to <ip-removed> port 554
main debug: connection succeeded (socket = 1636)
access_realrtsp warning: Cseq mismatch, got 1, assumed 0
access_realrtsp debug: rtsp connected
access_realrtsp warning: only real/helix rtsp servers supported for now
main debug: no access modules matched
main debug: dead input
qt debug: IM: Deleting the input
main debug: changing item without a request (current 0/1)
main debug: nothing to play