Я думаю, что ландшафт немного изменился со времени некоторых из предыдущих ответов. По крайней мере, согласно странице rtmp википедии . Похоже, что спецификация протокола 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
Эта страница была полезна при определении того, как преобразовать файл FLV в другие форматы.