comando - linux basico
RTMP: ¿Existe tal herramienta de línea de comandos de Linux? (3)
He buscado por todas partes para encontrar una utilidad de Linux que me permita descargar transmisiones rtmp. No flv video, pero transmisiones de MP3. La ubicación de las secuencias que quiero descargar están en este formato.
rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
Alguien sabe de una herramienta de línea de comandos? ¿O incluso algo cercano 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
Creo que el paisaje ha cambiado un poco desde el momento de algunas de las respuestas anteriores. Al menos según la página rtmp wikipedia . Parece que la especificación del protocolo rtmp está abierta para uso público. Para ese fin, puede usar 2 herramientas para lograr lo que el póster original pedía, rtmpdump
y ffmpeg
. Esto es lo que hice para descargar un flujo rtmp que estaba enviando un podcast de audio.
paso # 1 - descargar la corriente
rtmpdump la herramienta rtmpdump para lograr esto. Al igual que:
% 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 - convierte el archivo flv a mp3
OK, ahora tienes una copia local de la transmisión, archivo.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
Desde la salida anterior, podemos ver que el archivo.flv contiene una sola secuencia, solo audio, y está en formato mp3, y es un solo canal. Para extraerlo en un archivo mp3 adecuado, puede usar ffmpeg
nuevamente:
% 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á la transmisión de audio en un archivo, archivo.mp3 . También podrías haberlo extraído en un archivo wav como este:
ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav
Esta page fue útil para determinar cómo convertir el archivo flv a otros formatos.
Debe hacer una de las siguientes acciones, 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 demolerlo para extraer solo la transmisión de audio.
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 video al mismo tiempo, la mejor manera es usar ffmpeg:
ffmpeg -i rtmp://server/live/streamName -acodec copy -vcodec copy dump.mp4