2009-06-21 16 views
18

Ho cercato ovunque per trovare un'utilità linux che mi consenta di scaricare stream rtmp. Non video FLV ma flussi MP3. La posizione degli stream che voglio scaricare sono in questo formato.RTMP: Esiste uno strumento da riga di comando di Linux?

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

Qualcuno sa di uno strumento da riga di comando? O anche qualcosa di simile a quello che sto chiedendo?

Non voglio applicazioni software complete e sarebbe bello se funzionasse su Linux tramite Shell o qualcosa del genere.

Grazie a tutti

risposta

23

Uno dei seguenti dovrebbe fare, se avete mplayer o vlc compilato con accesso RTMP.

 
mplayer -dumpstream rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3 

Questo genererà un ./stream.dump.

 
vlc -I dummy rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3 \ 
    --sout file/ts:output.mpg vlc://quit 

Questo genererà un ./output.mpg. Dovrai dementificarlo per estrarre solo il flusso audio.

+0

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

+0

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

11

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.

10

Questa domanda è vecchia ma può aiutare altri utenti con questo dubbio.
Per scaricare direttamente, senza alcuna conversione, ci sono due opzioni (l'autore di entrambi i programmi è la stessa e il comportamento è lo stesso):

  • RTMPDump. Esempio: rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv
  • flvstreamer. Esempio: flvstreamer -r "rtmp://od.flash.plus.es/ondemand/14314/plus/plustv/PO770632.flv" -o salida.flv

E se si desidera scaricare e convertire i video allo stesso tempo, il modo migliore è l'uso ffmpeg:

ffmpeg -i rtmp://server/live/streamName -acodec copy -vcodec copy dump.mp4 
+0

Grazie, molto meglio delle soluzioni di cui sopra. – idmean

Problemi correlati