无法将 FFMPEG 的视频流播放到 VLC

无法将 FFMPEG 的视频流播放到 VLC

我正在尝试使用 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:1234udp://@:127.0.0.1:1234udp://@: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

相关内容