我有关于Icecast / Shoutcast流的网址,我怎样才能以多种比特率传递这些流?我知道如何重新编码文件,但不知道如何以多种比特率重新编码流。
For example i find two icecast/shoutcast stream url/server:
http://icecast_stream.ru:8000/play
http://shoutcast_stream:8000/
I want to relay it in multiple bitrates:
http://localhost:8000/icecast_stream_32
http://localhost:8000/icecast_stream_64
http://localhost:8000/icecast_stream_128
http://localhost:8000/shoutcast_stream_32
http://localhost:8000/shoutcast_stream_64
http://localhost:8000/shoutcast_stream_128
我可以使用Icecast + Ices或我需要使用哪种软件吗?
答案 0 :(得分:1)
可以使用多个工具完成流转码。 avconv / ffmpeg,vlc,liquidsoap,ezstream,...
一个例子:https://stackoverflow.com/a/29500982/2648865
迈向多比特率部分:在大多数情况下,您需要运行转码工具的多个流程。
如果您担心带宽消耗,那么我建议您在本地Icecast服务器上设置远程流的中继,并将其用作转码的输入。
:
我猜两个原始流都是128k
如下所述:http://icecast.org/docs/icecast-2.4.1/relaying.html#setting-up-a-single-broadcast-relay
<relay>
<server>icecast_stream.ru</server>
<port>8000</port>
<mount>/play</mount>
<local-mount>/icecast_stream_128</local-mount>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
要获得两个质量较低的流,请按上述步骤进行操作。使用冰是很复杂的,所以其他一个会更容易。
如果您想自动启动转码,请查看:
http://icecast.org/docs/icecast-2.4.1/config-file.html#mountsettings - 特别是on-connect:
<mount>
<mount-name>/icecast_stream_128</mount-name>
<on-connect>/usr/local/bin/start-transcoders-icecast-stream</on-connect>
</mount>
注意:此命令在流可用之前运行,您可能需要延迟启动转码器几秒钟以避免出现问题。