Ich versuche, einen Stream von ffmpeg in einem Videoplayer anzuzeigen.
Ursprünglich war es ein Kameraeingang, aber das Problem ist bei Videodateien und Bildschirmaufnahmen dasselbe. Der von mir verwendete Code ist eine Variante vonffmpeg -i INPUT -f mpegts udp://host:port
Gehen wir für diese Frage einmal davon aus, dass ich Folgendes sage:
ffmpeg -f dshow -i video="CAMERA-NAME" -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://10.1.0.102:1234
Unter macOS und Ubuntu kann ich mplayer oder VLC ausführen ffplay udp://10.1.0.102:1234
oder öffnen .udp://10.1.0.102:1234
Unter Windows erhalte ich Zugriff nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
von ffplay. Die Ports sind geöffnet, die Firewall ist ausgeschaltet und in Wireshark ist Paketverkehr sichtbar.
Irgendwelche Ideen, was das Problem sein könnte?
[AKTUALISIEREN]
Ich hatte eine dumme Idee, die ich ausprobieren wollte, localhost:1234
und sie funktioniert. Die Frage bleibt jedoch: Warum scheinen andere IPs nicht zu funktionieren?
Antwort1
Manchmal müssen Sie angeben, welche Schnittstelle verwendet werden soll, wie im folgenden Beispiel: -
ffmpeg -f dshow -i video="CAMERA-NAME" -preset ultrafast -c:v libx264 -tune zerolatency \
-b 900k -f mpegts "udp://239.0.0.2:1234?pkt_size=1316&localaddr=192.168.1.109"