Penso che il panorama sia cambiato un po 'dal tempo di alcune delle risposte precedenti. Almeno secondo lo rtmp wikipedia page. Sembrerebbe che la specifica del protocollo rtmp sia aperta per uso pubblico. A tal fine è possibile utilizzare 2 strumenti per realizzare ciò che il poster originale stava chiedendo, rtmpdump
e ffmpeg
. Ecco cosa ho fatto per scaricare un flusso rtmp che stava inviando un podcast audio.
passo # 1 - scaricare il flusso
ho usato lo strumento rtmpdump per raggiungere questo obiettivo. In questo modo:
% 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
passo # 2 - convertire il file FLV in MP3
OK, ora hai una copia locale del torrente, file.flv. È possibile utilizzare ffmpeg
per interrogare ulteriormente il file e anche per estrarre solo la parte audio.
% 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
Dall'output sopra possiamo vedere che la file.flv contiene un singolo flusso, solo audio, ed è in formato mp3, ed è un singolo canale. Per estrarre in un file mp3 corretta è possibile utilizzare ffmpeg
ancora:
% 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%
Il comando sopra copiare il flusso audio in un file, file.mp3. Si potrebbe anche averlo estratto in un file wav in questo modo:
ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav
Questa page è stato utile per determinare come convertire il file FLV in altri formati.
Grande, grazie! Ho installato mplayer ma non sono sicuro di come aggiungere o includere il supporto per rtmp. C'è un comando che posso usare per installarlo. Sto usando Fedora 10, yum come programma di installazione. – Abs
Hmm, in realtà sembra che mainline mplayer non abbia il supporto RTMP. A meno che tu non voglia provare patch e compilare mplayer da te, ti suggerisco di usare VLC. – ephemient