RTMP: есть ли такой инструмент командной строки Linux?
Я искал повсюду, чтобы найти утилиту Linux, которая позволит мне скачивать потоки RTMP. Не FLV видео, а MP3-потоки. Расположение потоков, которые я хочу загрузить, находится в этом формате.
rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
Кто-нибудь знает такой инструмент командной строки? Или даже что-то близкое к тому, что я прошу?
Я не хочу полноценного программного обеспечения, и было бы здорово, если бы он работал на Linux через Shell или что-то в этом роде.
Спасибо всем
3 ответа
Если у вас есть mplayer
или же vlc
скомпилировано с доступом RTMP.
mplayer -dumpstream rtmp: //live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
Это создаст ./stream.dump
,
vlc -я фиктивная rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3 \ --sout файл /ts:output.mpg vlc:// выход
Это создаст ./output.mpg
, Вам придется демультиплексировать его, чтобы извлечь только аудио поток.
Этот вопрос старый, но это может помочь другим пользователям с этим сомнением.
Для загрузки напрямую, без какой-либо конвертации, есть два варианта (автор обеих программ один и тот же):
- RTMPDump. Пример:
rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv
- flvstreamer. Пример:
flvstreamer -r "rtmp://od.flash.plus.es/ondemand/14314/plus/plustv/PO770632.flv" -o salida.flv
И если вы хотите скачать и конвертировать видео одновременно, лучше всего использовать ffmpeg:
ffmpeg -i rtmp://server/live/streamName -acodec copy -vcodec copy dump.mp4
Я думаю, что ландшафт немного изменился со времени некоторых из предыдущих ответов. По крайней мере, согласно странице Википедии 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 в другие форматы.