Я думаю, что пейзаж немного изменился со времен некоторых предыдущих ответов. По крайней мере, согласно rtmp wikipedia page. Похоже, что спецификация протокола rtmp открыта для общего пользования. С этой целью вы можете использовать 2 инструмента, чтобы выполнить то, что запрашивал оригинальный плакат, rtmpdump
и ffmpeg
. Вот что я сделал, чтобы загрузить поток rtmp, который отправлял аудиоподкаст.
шаг # 1 - скачать поток
Я использовал инструмент rtmpdump для достижения этой цели. Как так:
% 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
шаг # 2 - преобразовать файл FLV в mp3
ОК, так что теперь у вас есть локальная копия потока, file.flv. Вы можете использовать ffmpeg
для допроса файла, а также для извлечения только части аудио.
% 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
Из приведенного вывода мы можем видеть, что file.flv содержит один поток, только аудио, и это в формате mp3, и это единственный канал. Для того, чтобы извлечь его надлежащего mp3 файл, вы можете использовать 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%
Команда выше скопировать аудио поток в файл, file.mp3. Вы также могли бы добыли его в файл WAV так:
ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav
Это page было полезным в определении того, как преобразовать файл FLV в другие форматы.
Отлично, спасибо! Я установил mplayer, но я не уверен, как добавить или включить поддержку rtmp. Есть ли команда, которую я могу использовать для ее установки. Я использую Fedora 10, yum в качестве установщика. – Abs
Хм, на самом деле кажется, что mainline mplayer не поддерживает RTMP. Если вы не захотите попробовать исправление и компиляцию mplayer самостоятельно, я предлагаю вместо этого использовать VLC. – ephemient