rtmpdump - RTMP 发送错误 32

Posted

技术标签:

【中文标题】rtmpdump - RTMP 发送错误 32【英文标题】:rtmpdump - RTMP send error 32 【发布时间】:2014-03-18 23:50:55 【问题描述】:

我从 rtmp 流下载视频时遇到问题。 我正在尝试从 URL 下载流: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】:

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

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

如果您仍在使用 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 -

【讨论】:

以上是关于rtmpdump - RTMP 发送错误 32的主要内容,如果未能解决你的问题,请参考以下文章

rtmpdump应用在window中

监控 RTMP 流,如果可用则记录

rtmplib rtmp协议过程分析

c#怎么调用librtmp.dll

实现一个python RTMP服务器,flash播放器发送媒体数据后重置连接,如何排除故障

librtmp优化