2009-06-21 87 views
18

我已到处寻找可以让我下载rtmp流的linux实用程序。不是flv视频,而是MP3流。我想要下载的流的位置是这种格式。RTMP:有没有这样一个linux命令行工具?

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

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

我不想要完整的软件应用程序,如果它通过Shell或其他方式在Linux上工作,它将会很棒。

感谢所有

回答

23

之一以下应该做的,如果你有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。您必须将其解复用才能提取出音频流。

+0

很好,谢谢!我已经安装了mplayer,但我不确定如何添加或包含rtmp支持。有没有我可以用来安装它的命令。我使用Fedora 10,yum作为安装程序。 – Abs 2009-06-22 20:29:09

+0

嗯,实际上它似乎是主线mplayer没有RTMP支持。除非你想尝试修补和编译mplayer,否则我建议使用VLC。 – ephemient 2009-06-22 20:38:07

11

我认为自从以前的一些答案时间以来,景观已经发生了一些变化。至少根据rtmp wikipedia page。看起来,rtmp协议规范已公开供公众使用。为此,您可以使用2个工具来完成原始海报的要求,rtmpdumpffmpeg。以下是我下载发送音频Podcast的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 

page是决定如何将FLV文件转换为其他格式有用。

10

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

  • 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 
相关问题