2017-09-18 1 views
0

Hier ist mein GStreamer Streaming-Rohr:GStreamer Streaming-Video, öffentlichen IP-Adresse

gst-launch-1.0 v4l2src ! video/x-raw,width=640,height=480 ! \ 
    x264enc tune=zerolatency byte-stream=true \ 
    bitrate=3000 threads=2 ! \ 
    h264parse config-interval=1 ! \ 
    rtph264pay ! udpsink host=xxx.xxx.xxx.xxx port=5600 

und die damit verbundenen GStreamer Empfangspipeline:

gst-launch-1.0 udpsrc port=5600 ! \ 
    application/x-rtp,\ 
    encoding-name=H264,payload=96 ! \ 
    rtph264depay ! h264parse ! avdec_h264 ! \ 
    autovideosink 

Mein Problem ist, wenn ich stattdessen meine öffentliche IP-Adresse eingeben von xxx.xxx.xxx.xxx. Ich kann mein Video nicht empfangen. Aber wenn ich mein lokales IP-Video benutze, wird es empfangen. Weiß jemand wo das Problem ist. Ich öffne beide Pipelines auf demselben PC, vielleicht ist das das Problem?

Antwort

0

Zuerst sollten Sie den Verkehr mit einem Tool wie Wireshark überwachen. Unter Linux können Sie die Loopback (lo) -Schnittstelle betrachten.

Außerdem gibt es eine address Eigenschaft auf udpsrc Sie einstellen können:

gst-launch-1.0 udpsrc port=5600 address=xxx.xxx.xxx.xxx ! \ 
    application/x-rtp,\ 
    encoding-name=H264,payload=96 ! \ 
    rtph264depay ! h264parse ! avdec_h264 ! \ 
    autovideosink 
+0

i mit Adresse Eigenschaft versucht haben, und ich habe jetzt diesen Fehler: 'Einstellen Pipeline PAUSED ... ERROR: Pipeline möchte nicht pausieren. FEHLER: von Element/GstPipeline: pipeline0/GstUDPSrc: udpsrc0: Konnte Einstellungen von/auf Ressource nicht erhalten/setzen. Zusätzliche Debug-Informationen: gstudpsrc.c (1494): gst_udpsrc_open():/GstPipeline: pipeline0/GstUDPSrc: udpsrc0: bind fehlgeschlagen: Fehler zu Adressbindung: Kann Einstellung Pipeline auf NULL ... Befreit Pipeline nicht-Adresse angefordert assign ... ' Ist es möglich, dass GStreamer nur im lokalen Netzwerk streamt und es nicht möglich ist, über öffentliche IP-Adressen zu streamen? – suny99