2009-06-21 10 views
18

J'ai cherché partout où trouver un utilitaire linux qui me permettra de télécharger des flux rtmp. Pas de vidéo flv mais de flux MP3. L'emplacement des flux que je veux télécharger est dans ce format.RTMP: Existe-t-il un outil de ligne de commande linux?

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

Quelqu'un connaît un tel outil de ligne de commande? Ou même quelque chose de proche de ce que je demande?

Je ne veux pas d'applications logicielles complètes et ce serait génial si cela fonctionnait sous Linux via Shell ou autre.

Merci à tous

Répondre

23

L'un des éléments suivants doivent faire, si vous avez mplayer ou vlc compilé avec l'accès RTMP.

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

Cela génère un ./stream.dump.

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

Cela générera un ./output.mpg. Vous devrez le démultiplexer pour extraire le flux audio.

+0

Grand, merci! J'ai installé mplayer mais je ne suis pas sûr de savoir comment ajouter ou inclure le support rtmp. Y at-il une commande que je peux utiliser pour l'installer. J'utilise Fedora 10, yum en tant qu'installateur. – Abs

+0

Hmm, en fait, il semble que mplayer Mainline n'a pas de support RTMP. A moins que vous ne souhaitiez essayer de patcher et de compiler mplayer vous-même, je suggère d'utiliser VLC à la place. – ephemient

11

Je pense que le paysage a changé un peu depuis l'époque de certaines des réponses précédentes. Au moins selon le rtmp wikipedia page. Il semblerait que la spécification du protocole rtmp soit ouverte au public. À cette fin, vous pouvez utiliser 2 outils pour accomplir ce que l'affiche originale demandait, rtmpdump et ffmpeg. Voici ce que j'ai fait pour télécharger un flux rtmp qui envoyait un podcast audio.

étape 1 - télécharger le flux

J'ai utilisé l'outil rtmpdump pour y parvenir. Comme si:

% 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 

étape 2 - convertir le fichier flv en mp3

OK, maintenant que vous avez une copie locale du flux, file.flv. Vous pouvez utiliser ffmpeg pour interroger davantage le fichier et extraire uniquement la partie 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 

De la sortie ci-dessus, nous pouvons voir que le file.flv contient un seul flux, juste audio, et il est en format mp3, et il est un seul canal. Pour extraire un fichier mp3 approprié, vous pouvez utiliser ffmpeg à nouveau:

% 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% 

La commande ci-dessus copier le flux audio dans un fichier, file.mp3. Vous pouvez également avoir extrait dans un fichier wav comme ceci:

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

Cette page est utile pour déterminer comment convertir le fichier flv vers d'autres formats.

10

Cette question est ancienne mais peut aider d'autres utilisateurs ayant un tel doute.
Pour télécharger directement, sans conversion, il y a deux options (l'auteur des deux programmes est le même et le comportement est le même):

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

Et si vous voulez télécharger et convertir la vidéo en même temps, la meilleure façon est d'utiliser ffmpeg:

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

Merci, beaucoup mieux que les solutions ci-dessus. – idmean

Questions connexes