web-dev-qa-db-ja.com

RTMP:そのようなLinuxコマンドラインツールはありますか?

私はどこでもrtmpストリームをダウンロードできるLinuxユーティリティを探しました。 flvビデオではなく、MP3ストリーム。ダウンロードしたいストリームの場所はこの形式です。

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

そのようなコマンドラインツールを知っている人はいますか?それとも私が求めているものに近いものはありますか?

私は完全なソフトウェアアプリケーションを望んでいません、そしてそれがシェルか何かを介してLinux上で動作するならそれは素晴らしいでしょう。

皆さんありがとう

21
Abs

RTMPアクセスでコンパイルされたmplayerまたはvlcがある場合は、次のいずれかを実行する必要があります。

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

これにより、./stream.dumpが生成されます。

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

これにより、./output.mpgが生成されます。オーディオストリームだけを抽出するには、それをデマルチプレクサする必要があります。

25
ephemient

この質問は古いですが、これはこの疑問を持つ別のユーザーに役立つ可能性があります。
変換せずに直接ダウンロードするには、2つのオプションがあります(両方のプログラムの作成者は同じで、動作も同じです )::

  • 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
13
Juan Simón

以前の回答のいくつかの時から、風景は少し変わったと思います。少なくとも rtmp wikipediaページ によると。 rtmpプロトコル仕様が公開されているように見えます。そのために、元の投稿者が求めていたものを達成するために、rtmpdumpffmpegの2つのツールを使用できます。オーディオポッドキャストを送信していた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ファイルを他の形式に変換する方法を決定するのに役立ちました。

12
slm