以前の回答のいくつかの時から、風景は少し変わったと思います。少なくとも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形式であり、単一のチャネルであることがわかります。ffmpeg
それを適切なmp3ファイルに抽出するには、次のコマンドを再度使用できます。
% 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ファイルを他の形式に変換する方法を決定するのに役立ちました。