ffmpeg 到 ffserver 有效,但无法查看

ffmpeg to ffserver works, but cannot view

我有一个通用的 windows 网络摄像头,我正在尝试广播

ffmpeg -f vfwcap -I 0 -vcodedc libx264 -tune zerolatency-b 900k -f mpegts udp://domain.com:8090

看起来没有错误。 我可以在端口 8090

上使用 tcpdump 看到大量流量

ffserver 在没有配置防火墙的 FreeBSD 服务器上配置

# cat /usr/local/etc/ffserver.conf| egrep -v "(^#.*|^$)"
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 98.124.117.129
</Feed>
<Stream test1.mpg>
Feed feed1.ffm
Format mpeg
AudioBitRate 32
AudioChannels 1
AudioSampleRate 44100
VideoBitRate 64
VideoBufferSize 40
VideoFrameRate 3
VideoSize 160x128
VideoGopSize 12
ACL ALLOW all
</Stream>
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
</Stream>
<Stream test1-rtsp.mpg>
Format rtp
File "/tmp/feed1.ffm"
</Stream>
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255 98.124.117.129 0.0.0.0
</Stream>
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>

端口可用

# netstat -an|grep 8090
tcp4       0      0 *.8090                 *.*                    LISTEN

但是当我尝试通过 VLC 连接到 ffserver 时

rtsp://persiaspalace.us:8090/feed1.ffm

连接失败。 没有网络问题

如何配置从 ffmpeg 到 ffserver 的网络摄像头广播,以便通过 VLC(或类似)查看?

您需要连接到流,而不是 Feed。提要是传入的视频。流是传出的视频。

rtsp://persiaspalace.us:8090/feed1.ffm

需要

rtsp://persiaspalace.us:8090/test1.mpg 要么 rtsp://persiaspalace.us:8090/test.asf 要么 rtsp://persiaspalace.us:8090/test1-rtsp.mpg

我相信你的端口混淆了。 FFserver 将端口 8090 用于 HTTP、RTSP。在您的 FFserver 配置文件中设置 RTSPPort,然后确保您访问的是流而不是提要(正如 QA Collective 指出的那样)。类似于:

...
HTTPPort 8090
RTSPPort 5554
...

确保端口可用,然后尝试:

ffplay -loglevel debug "rtsp://persiaspalace.us:5554/test1.mpg"