使用 gstreamer rtsp 服务器转发 RTSP 流

问题描述

我需要实现和 RTSP 服务器,它将连接到其他 RTSP 流并将其传输到客户端,因此只是一个虚拟的 rtsp 转发器(端口转发或其他 NAT 解决方在这里不是一个选项)。我尝试使用 gstreamer rtsp 服务器并将下一个启动字符串提供给它:

rtspsrc location=rtsp://127.0.0.1/axis-media/media.amp ! rtph264depay ! rtph264pay name=pay0 pt=96

使用 GST_DEBUG=3 运行我的服务器会得到一个结果:

0:00:11.702615217  8269 0x7fe5ec005d40 WARN                 rtspsrc gstrtspsrc.c:5423:gst_rtspsrc_reconnect:<rtspsrc0> warning: Could not receive any UDP packets for 5.0000 seconds,maybe your firewall is blocking it. retrying using a tcp connection.
0:00:11.702773239  8269 0x7fe5f800de30 WARN               rtspmedia rtsp-media.c:2735:default_handle_message: 0x7fe5f80301c0: got warning Could not read from resource. (gstrtspsrc.c(5423): gst_rtspsrc_reconnect
(): /GstPipeline:media-pipeline/GstBin:bin0/GstRTSPSrc:rtspsrc0:
Could not receive any UDP packets for 5.0000 seconds,maybe your firewall is blocking it. retrying using a tcp connection.)                                                                                       
client (127.0.0.1) connected
connected sessions: 0
clients connected: 2
0:00:11.891762200  8269 0x7fe5ec005d40 FIXME        rtpjitterbuffer gstrtpjitterbuffer.c:1535:gst_jitter_buffer_sink_parse_caps:<rtpjitterbuffer0> Unsupported timestamp reference clock                          
0:00:11.891774847  8269 0x7fe5ec005d40 FIXME        rtpjitterbuffer gstrtpjitterbuffer.c:1543:gst_jitter_buffer_sink_parse_caps:<rtpjitterbuffer0> Unsupported media clock                                        
0:00:11.910516807  8269 0x562e7e5fa680 FIXME              rtspmedia rtsp-media.c:3835:gst_rtsp_media_suspend: suspend for dynamic pipelines needs fixing                                                          
0:00:11.910893371  8269 0x7fe5ec005d40 WARN                 rtspsrc gstrtspsrc.c:5915:gst_rtsp_src_receive_response:<rtspsrc0> receive interrupted                                                                
0:00:11.910903309  8269 0x7fe5ec005d40 WARN                 rtspsrc gstrtspsrc.c:8242:gst_rtspsrc_pause:<rtspsrc0> PAUSE interrupted                                                                              
0:00:11.911159840  8269 0x7fe5ec005d40 WARN                 rtspsrc gstrtspsrc.c:5995:gst_rtspsrc_try_send:<rtspsrc0> send interrupted                                                                            
0:00:11.911166353  8269 0x7fe5ec005d40 WARN                 rtspsrc gstrtspsrc.c:7669:gst_rtspsrc_close:<rtspsrc0> TEARDOWN interrupted                                                                           
client (127.0.0.1) closed
0:00:12.052945700  8269 0x7fe5f00171e0 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<fakesrc1:src> Creating random stream-id,consider implementing a deterministic way of creating a stream-id
connected sessions: 0
clients connected: 1
connected sessions: 0
clients connected: 1
0:00:17.170566970  8269 0x7fe5f00170a0 WARN                 rtspsrc gstrtspsrc.c:5423:gst_rtspsrc_reconnect:<rtspsrc1> warning: Could not receive any UDP packets for 5.0000 seconds,maybe your firewall is blocking it. retrying using a tcp connection.
0:00:17.170649535  8269 0x7fe5f00172d0 WARN               rtspmedia rtsp-media.c:2735:default_handle_message: 0x7fe5f8030390: got warning Could not read from resource. (gstrtspsrc.c(5423): gst_rtspsrc_reconnect
(): /GstPipeline:media-pipeline/GstBin:bin1/GstRTSPSrc:rtspsrc1:
Could not receive any UDP packets for 5.0000 seconds,maybe your firewall is blocking it. retrying using a tcp connection.)                                                                                       
0:00:17.425226083  8269 0x7fe5f00170a0 FIXME        rtpjitterbuffer gstrtpjitterbuffer.c:1535:gst_jitter_buffer_sink_parse_caps:<rtpjitterbuffer1> Unsupported timestamp reference clock                          
0:00:17.425254552  8269 0x7fe5f00170a0 FIXME        rtpjitterbuffer gstrtpjitterbuffer.c:1543:gst_jitter_buffer_sink_parse_caps:<rtpjitterbuffer1> Unsupported media clock                                        
0:00:17.434697010  8269 0x562e7e5fa680 FIXME              rtspmedia rtsp-media.c:3835:gst_rtsp_media_suspend: suspend for dynamic pipelines needs fixing                                                          
0:00:17.435554904  8269 0x7fe5f00170a0 WARN                 rtspsrc gstrtspsrc.c:5915:gst_rtsp_src_receive_response:<rtspsrc1> receive interrupted                                                                
0:00:17.435578828  8269 0x7fe5f00170a0 WARN                 rtspsrc gstrtspsrc.c:8242:gst_rtspsrc_pause:<rtspsrc1> PAUSE interrupted                                                                              
0:00:17.436368348  8269 0x7fe5f00170a0 WARN                 rtspsrc gstrtspsrc.c:5995:gst_rtspsrc_try_send:<rtspsrc1> send interrupted                                                                            
0:00:17.436393638  8269 0x7fe5f00170a0 WARN                 rtspsrc gstrtspsrc.c:7669:gst_rtspsrc_close:<rtspsrc1> TEARDOWN interrupted                                                                           
0:00:17.488454868  8269 0x562e7e5fa680 ERROR             rtspclient rtsp-client.c:1707:handle_play_request: client 0x7fe5fc009250: media not found                                                                
0:00:17.489046867  8269 0x562e7e5fa680 ERROR             rtspclient rtsp-client.c:1259:handle_teardown_request: client 0x7fe5fc009250: no media for uri                                                           
client (127.0.0.1) closed
client (127.0.0.1) connected
client (127.0.0.1) closed
0:00:17.722597026  8269 0x7fe5f00170f0 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<fakesrc2:src> Creating random stream-id,consider implementing a deterministic way of creating a stream-id

任何建议我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)