Я пытаюсь отобразить поток из ffmpeg в видеоплеере.
Первоначально это был вход камеры, но проблема та же самая для видеофайлов и снимков экрана. Код, который я использую, является вариантомffmpeg -i INPUT -f mpegts udp://host:port
Для целей этого вопроса предположим, что я выберу:
ffmpeg -f dshow -i video="CAMERA-NAME" -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://10.1.0.102:1234
В macOS и Ubuntu я могу запустить ffplay udp://10.1.0.102:1234
или открыть udp://10.1.0.102:1234
в mplayer или VLC.
В Windows получаю nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
от ffplay. Порты открыты, брандмауэр выключен, в Wireshark виден трафик пакетов.
Есть идеи, в чем может быть проблема?
[ОБНОВЛЯТЬ]
У меня была глупая идея попробовать и использовать, localhost:1234
и она работает. Вопрос все еще остается: почему другие IP-адреса, похоже, не работают?
решение1
Иногда вам необходимо указать, какой интерфейс использовать, как в примере ниже:
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"