ffmpeg streaming(mpegts vs rtmp)错误

时间:2017-09-09 16:15:33

标签: ffmpeg

这有效:

ffmpeg -i  test.mp4 -framerate 30 -video_size 1280x720 -c:v libx264 -preset veryfast -maxrate 1984k -bufsize 3968k -vf "format=yuv420p" -g 60 -f mpegts udp://x.x.x.x:1935/video/test

但这并不是:

ffmpeg -i  test.mp4 -framerate 30 -video_size 1280x720 -c:v libx264 -preset veryfast -maxrate 1984k -bufsize 3968k -vf "format=yuv420p" -g 60 -f flv rtmp://x.x.x.x:1935/video/test

我明白了:

RTMP_Connect0, failed to connect socket. 10061 (Unknown error)
rtmp://x.x.x.x:1935/video/test: Unknown error occurred
是的,我有一台主动收听RTMP连接的服务器(Nimble),它没有看到任何RTMP流传入。

即使在127.0.0.1的服务器上运行ffmpeg,我也会遇到同样的错误。

有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用网络嗅探来验证流量是(1)是从始发服务器发送的,还是(2)是在目标客户端计算机上接收的。

Wireshark是一个很好的网络嗅探器程序,可以在两端使用。或者您可以使用像" tcpdump"这样的Linux实用程序。看看捕获的流量是否看起来正常",没有太多的重试或错误 - 如果它发生的话。

如果接收端没有接收到流量,则(1)仔细检查IP地址是否正确,以及(2)检查接收端上的端口是否打开。

如果接收端正在接收OK,但是流永远不会超过第一条消息,那么请检查发送系统是否允许传入来自接收方的响应,因为它可能默认使用TCP,这需要双向沟通。

如果可行 - 换句话说,如果您成功地看到来自发件人的流并被客户端计算机接收 - 那么您可以尝试在客户端上使用VLC进行接收。