rtmpdump - RTMP发送错误32

时间:2014-03-18 23:50:55

标签: linux rtmp

从rtmp流下载视频时出现问题。 我尝试从网址下载流:http://stimotion.pl/galeria-kamer-online?catid=krosno&slg=dworzec
在页面源代码中我找到了带播放器的js文件[http://stimotion.pl/flow/krosno/dworzec.js]。 有关于流的信息 - 服务器:rtmp://80.48.180.7/krosno和流的名称:krosno2

我尝试使用rtmpdump下载它。我使用这个命令:

rtmpdump -o str.flv -r rtmp://80.48.180.7/krosno -y krosno2

但我收到了一条消息:

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
WARNING: HandShake: client signature does not match!
INFO: Connected...
ERROR: rtmp server sent error
Caught signal: 13, cleaning up, just a second...
ERROR: WriteN, RTMP send error 32 (42 bytes)
ERROR: RTMP_ReadPacket, failed to read RTMP packet header

如何保存此流中的视频? 有可能吗?

感谢所有回复

1 个答案:

答案 0 :(得分:0)

我迟到了两年才回答这个问题,但我这样做只是因为这个错误让我疯了。在我的情况下,它并没有直接影响我,它影响了我的母亲,生活在另一个国家,无法收听她最喜欢的广播电台。

我很高兴地说,我认为问题是在上游解决的。它一定是上游修复的众多缓冲区问题之一,如果你正在运行你最喜欢的发行版的新版本,很可能已经为你修复了。

如果你仍然在Ubuntu 14.04上,这是一个解决方法。从git获取新的rtmpdump,并静态编译,例如:

git clone git://git.ffmpeg.org/rtmpdump
cd rtmpdump

现在编辑Makefile以及LIB_RTMP=-Llibrtmp -lrtmp所在位置,将其更改为:

LIB_RTMP=librtmp/librtmp.a

现在编译它:

make SYS=posix

生成的二进制文件将librtmp1静态链接,并且不会干扰系统上较旧的librtmp0,因此您不必重新编译所有这些内容。

我现在可以不间断地听我最喜欢的广播电台,如下:

./rtmpdump --url rtmp://ingest1.netdynamix.fm/Magic828//Magic828.stream | vlc -