RTMP:是否有这样的Linux命令行工具?(RTMP: Is there such a linux

2019-07-29 01:56发布

我已经到处找Linux的工具,可以让我下载RTMP流。 不FLV视频,但MP3流。 我想下载流的位置,在这种格式。

rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3

任何人都知道这样的命令行工具? 甚至任何接近我所要求的?

我不想完整的软件应用程序,如果通过Shell或工作过的东西在Linux将是巨大的。

感谢所有

Answer 1:

以下内容之一应该做的,如果你有mplayervlc与RTMP访问编译。

mplayer -dumpstream rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3

这将产生一个./stream.dump

vlc -I dummy rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3 \
    --sout file/ts:output.mpg vlc://quit

这将产生一个./output.mpg 。 你必须解复用它来只提取音频流出来。



Answer 2:

我认为,由于以前的一些答案的时间的风景已经改变了一点。 至少根据RTMP维基百科页面 。 这样看来,RTMP协议规范是开放给公众使用。 为此,你可以使用2种工具来完成原来的海报是问什么, rtmpdumpffmpeg 。 这是我做下装一个发送音频播客一RTMP流。

步骤1 -下载流

我使用的工具rtmpdump做到这一点。 像这样:

% rtmpdump -r rtmp://url/to/some/file.mp3 -o /path/to/file.flv
RTMPDump v2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
INFO: Connected...
Starting download at: 0.000 kB
28358.553 kB / 3561.61 sec
Download complete

第2步-转换FLV文件到MP3

好了,现在你已经得到了流的本地副本,file.flv。 您可以使用ffmpeg询问该文件进一步,也只提取音频部分。

% ffmpeg -i file.flv
....
[flv @ 0x25f6670]max_analyze_duration reached
[flv @ 0x25f6670]Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'file.flv':
  Duration: 00:59:21.61, start: 0.000000, bitrate: 64 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, 1 channels, s16, 64 kb/s

从上面的输出,我们可以看到,file.flv包含单个流,只是音频,它是MP3格式,这是一个单一的通道。 要解压到你可以使用适当的MP3文件ffmpeg再次:

% ffmpeg -i file.flv -vn -acodec copy file.mp3
....
[flv @ 0x22a6670]max_analyze_duration reached
[flv @ 0x22a6670]Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'file.flv':
 Duration: 00:59:21.61, start: 0.000000, bitrate: 64 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, 1 channels, s16, 64 kb/s
Output #0, mp3, to 'file.mp3':
  Metadata:
    TSSE            : Lavf52.64.2
    Stream #0.0: Audio: libmp3lame, 44100 Hz, 1 channels, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=   27826kB time=3561.66 bitrate=  64.0kbits/s    
video:0kB audio:27826kB global headers:0kB muxing overhead 0.000116%

上面的命令将音频流复制到一个文件,file.mp3。 你也可以有它提取到像这样一个wav文件:

ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav

这个页面是确定如何将FLV文件转换为其他格式有用。



Answer 3:

这个问题是旧的,但这样可以帮助到其他用户用这个疑问。
直接下载,无需任何转换,有两个选项( 这两个程序的作者是相同的,该行为是相同的 ):

  • RTMPDump 。 例如: rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv
  • flvstreamer 。 例如: flvstreamer -r "rtmp://od.flash.plus.es/ondemand/14314/plus/plustv/PO770632.flv" -o salida.flv

如果你想下载和转换,在同一时间的视频,最好的办法就是使用的ffmpeg:

ffmpeg -i rtmp://server/live/streamName -acodec copy -vcodec copy dump.mp4


文章来源: RTMP: Is there such a linux command line tool?