我已到處尋找可以讓我下載rtmp流的linux實用程序。不是flv視頻,而是MP3流。我想要下載的流的位置是這種格式。RTMP:有沒有這樣一個linux命令行工具?
rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
任何人都知道這樣的命令行工具?或者甚至是接近我所要求的東西?
我不想要完整的軟件應用程序,如果它通過Shell或其他方式在Linux上工作,它將會很棒。
感謝所有
我已到處尋找可以讓我下載rtmp流的linux實用程序。不是flv視頻,而是MP3流。我想要下載的流的位置是這種格式。RTMP:有沒有這樣一個linux命令行工具?
rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
任何人都知道這樣的命令行工具?或者甚至是接近我所要求的東西?
我不想要完整的軟件應用程序,如果它通過Shell或其他方式在Linux上工作,它將會很棒。
感謝所有
之一以下應該做的,如果你有mplayer
或vlc
使用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
。您必須將其解複用才能提取出音頻流。
我認爲自從以前的一些答案時間以來,景觀已經發生了一些變化。至少根據rtmp wikipedia page。看起來,rtmp協議規範已公開供公衆使用。爲此,您可以使用2個工具來完成原始海報的要求,rtmpdump
和ffmpeg
。以下是我下載發送音頻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文件轉換爲其他格式有用。
這個問題很老,但這可以幫助其他用戶懷疑。
直接下載,無需任何轉換,有兩個選項(這兩個程序的作者是相同的,並且行爲是相同):
rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv
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
很好,謝謝!我已經安裝了mplayer,但我不確定如何添加或包含rtmp支持。有沒有我可以用來安裝它的命令。我使用Fedora 10,yum作爲安裝程序。 – Abs 2009-06-22 20:29:09
嗯,實際上它似乎是主線mplayer沒有RTMP支持。除非你想嘗試修補和編譯mplayer,否則我建議使用VLC。 – ephemient 2009-06-22 20:38:07