2009-06-21 16 views
18

He buscado en todas partes para encontrar una utilidad de Linux que me permita descargar secuencias de rtmp. No flv video pero transmisiones de MP3. La ubicación de las transmisiones que deseo descargar está en este formato.RTMP: ¿Existe una herramienta de línea de comandos de Linux?

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

¿Alguien conoce esta herramienta de línea de comandos? ¿O algo parecido a lo que estoy pidiendo?

No quiero aplicaciones de software completas y sería genial si funcionara en Linux a través de Shell o algo así.

Gracias a todos

Respuesta

23

Uno de los siguientes debe hacer, si tiene mplayer o vlc compilado con acceso RTMP.

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

Esto generará un ./stream.dump.

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

Esto generará un ./output.mpg. Tendrás que demultiplexarlo para extraer solo la transmisión de audio.

+0

Muy bien, gracias! He instalado mplayer pero no estoy seguro de cómo agregar o incluir compatibilidad con rtmp. ¿Hay algún comando que pueda usar para instalarlo? Estoy usando Fedora 10, yum como instalador. – Abs

+0

Hmm, en realidad parece que mainline mplayer no tiene soporte RTMP. A menos que quiera probar parches y compilar mplayer usted mismo, sugiero usar VLC en su lugar. – ephemient

11

Creo que el paisaje ha cambiado un poco desde el momento de algunas de las respuestas anteriores. Al menos según el rtmp wikipedia page. Parece que la especificación del protocolo rtmp está abierta al público. Para ello, puede usar 2 herramientas para lograr lo que el cartel original estaba pidiendo, rtmpdump y ffmpeg. Esto es lo que hice para descargar una secuencia de rtmp que estaba enviando un podcast de audio.

el paso # 1 - descargar la corriente

que utiliza la herramienta rtmpdump para lograr esto. De este 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 

paso # 2 - convertir el archivo FLV a MP3

OK, así que ahora usted tiene una copia local de la corriente, file.flv. Puede usar ffmpeg para interrogar más el archivo y también para extraer solo la parte de 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 

A partir del resultado anterior, podemos ver que el file.flv contiene una sola corriente, solo audio, y es en formato mp3, y es un solo canal. Para extraerlo a un archivo mp3 adecuada que se puede usar de nuevo 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% 

El comando anterior copiar el flujo de audio en un archivo, file.mp3. También podría haber extraído en un archivo WAV, así:

ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav 

Este page fue útil para determinar cómo convertir el archivo FLV a otros formatos.

10

Esta pregunta es antigua, pero esto puede ayudar a otros usuarios con esta duda.
Para descargar directamente, sin ninguna conversión, hay dos opciones (el autor de ambos programas es el mismo y el comportamiento es el mismo):

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

Y si desea descargar y convertir el vídeo al mismo tiempo, la mejor manera es usar ffmpeg:

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

Gracias, mucho mejor que las soluciones anteriores. – idmean

Cuestiones relacionadas