Abs*_*Abs 20 linux shell command-line utilities rtmp
我到处都找到了一个允许我下载rtmp流的linux实用程序.不是flv视频而是MP3流.我想下载的流的位置采用这种格式.
rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
Run Code Online (Sandbox Code Playgroud)
有谁知道这样的命令行工具?甚至是什么接近我要求的东西?
我不想要完整的软件应用程序,如果它通过Shell或其他东西在Linux上运行会很棒.
谢谢大家
eph*_*ent 25
如果您拥有mplayer
或vlc
使用RTMP访问编译,则应执行以下操作之一.
mplayer -dumpstream rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3
这将产生一个./stream.dump
.
vlc -I dummy rtmp://live.site.com/loc/45/std_fc74a6b7f79c70a5f60.mp3 \ --sout file/ts:output.mpg vlc://quit
这将产生一个./output.mpg
.您必须将其解复用才能提取出音频流.
slm*_*slm 12
我认为自从以前的一些答案出现以来,景观发生了一些变化.至少根据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
Run Code Online (Sandbox Code Playgroud)
步骤#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
Run Code Online (Sandbox Code Playgroud)
从上面的输出我们可以看到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%
Run Code Online (Sandbox Code Playgroud)
上面的命令会将音频流复制到文件file.mp3中.您也可以将其解压缩到wav文件中,如下所示:
ffmpeg -i file.flv -vn -acodec pcm_s16le -ar 44100 -ac 2 file.wav
Run Code Online (Sandbox Code Playgroud)
此页面可用于确定如何将flv文件转换为其他格式.
Jua*_*món 12
这个问题已经过时了,但这可以帮助另一个有这种疑问的用户.
要直接下载,没有任何转换,有两个选项(两个程序的作者是相同的,行为是相同的):
rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv
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
Run Code Online (Sandbox Code Playgroud)