
FFMPEG を使用してローカル ウェブカメラをストリーミングしようとしています。テスト目的で、ローカルでこれを実行し、VLC (3.0.8、Windows 10) を使用してストリームを開こうとしています。FFMPEG からストリーミングする方法は次のとおりです。
ffmpeg -f dshow -i video="Microsoft Camera Front" -preset fast -s 1280x720
-vcodec libx264 -tune ssim -b 500k -f mpegts udp://127.0.0.1:1234
ストリームをシームレスに再生できます
ffplay udp://127.0.0.1:1234
しかし、VLC を使ってもこれを動作させることができません。[ネットワーク ストリームを開く] をクリックし、udp://127.0.0.1:1234
またはudp://@:127.0.0.1:1234
または などのさまざまな形式を試しましたudp://@:1234
。後者を使用すると、ストリームを開くことはできますが、ビデオは表示されません。ただし、コーデック情報ウィンドウからは、正しいコーデック (コーデック: H264 - MPEG-4 AVC (パート 10) (h264)) が検出されているように見えます。統計ウィンドウから、40kb/s から 100kb/s の間で変化するビット レートでデータを受信していることがわかります。これは、約 560kbit/s でストリームしていることを考えると妥当なようです。
つまり、ビデオが表示されないようです。Windows 10 を搭載した別の PC でも同じことが起こります。何が問題なのか、何かお分かりですか? ヒントがあれば、よろしくお願いします。
答え1
サーバー (ffmpeg) 側とクライアント (vlc) 側の両方にパケット サイズを追加します。
ffmpegの場合:
>ffmpeg -re -i "path/to/my/video.mp4" -vcodec libx264 -f mpegts udp://127.0.0.1:1234?pkt_size=1316
vlcの場合:
>udp://127.0.0.1:1234?pkt_size=1316
答え2
VLCではこの作業に「@」記号が必要です
udp://@127.0.0.1:1234?pkt_size=1316