从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
如何保存此流中的视频? 有可能吗?
感谢所有回复
答案 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 -