0

我有 Icecast/Shoutcast 流的 url,如何以多种比特率中继这些流?我知道如何重新编码文件,但不知道如何重新编码多个比特率的流。

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 或我需要使用哪种软件来做吗?

4

1 回答 1

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>
注意:此命令在流之前运行可用,您可能需要将转码器的启动延迟几秒钟以避免出现问题。

于 2015-07-16T14:53:18.443 回答