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 では、mplayer または VLC で実行したりffplay udp://10.1.0.102:1234
開いたりできます。udp://10.1.0.102:1234
Windows では、ffplay から取得していますnan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
。ポートは開いており、ファイアウォールはオフになっており、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"