Ich denke, die Landschaft hat sich seit der Zeit einiger der vorherigen Antworten etwas verändert. Zumindest nach der rtmp wikipedia page. Es scheint, dass die rtmp Protokollspezifikation für die öffentliche Nutzung geöffnet ist. Zu diesem Zweck können Sie zwei Werkzeuge verwenden, um zu erreichen, was das ursprüngliche Plakat fragte, rtmpdump
und ffmpeg
. Hier ist, was ich getan habe, um einen rtmp-Stream herunterzuladen, der einen Audio-Podcast gesendet hat.
Schritt # 1 - Download der Strom
benutzte ich das Werkzeug rtmpdump dies zu erreichen. Wie so:
% 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
Schritt # 2 - wandelt die FLV-Datei zu mp3
OK, so jetzt haben Sie eine lokale Kopie des Streams bekommen, file.flv. Sie können ffmpeg
verwenden, um die Datei weiter abzufragen und auch nur den Audioteil zu extrahieren.
% 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
Aus der obigen Ausgabe können wir sehen, dass die file.flv einen einzelnen Stream enthält, nur Audio, und es ist im mp3-Format, und es ist ein einziger Kanal. Um es zu einer richtigen MP3-Datei zu extrahieren können Sie ffmpeg
wieder verwenden:
% 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%
Der obige Befehl wird kopieren der Audio-Stream in eine Datei, file.mp3. Sie könnten auch zu einer WAV-Datei haben wie so extrahiert:
ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav
Diese page nützlich war in der Bestimmung, wie die FLV-Datei in andere Formate zu konvertieren.
Großartig, danke! Ich habe mplayer installiert, aber ich bin nicht sicher, wie man rtmp Unterstützung hinzufügt oder einschließt. Gibt es einen Befehl, den ich verwenden kann, um es zu installieren? Ich benutze Fedora 10, yum als Installer. – Abs
Hmm, eigentlich scheint es, als hätte mplayer mplayer keine RTMP-Unterstützung. Sofern Sie nicht selbst versuchen möchten, mplayer selbst zu patchen und zu kompilieren, schlage ich vor, stattdessen VLC zu verwenden. – ephemient