2009-06-21 88 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 
相關問題