标签: icecast

Windows Phone 7上的MediaElement和AAC流支持

根据此链接,Windows Phone 7在浏览器中也支持AAC编码的音频流MediaElement API.我们在我们的设备上测试了很少的冰流(例如这个)(例如HTC HD7 T9292,最新更新 - 版本7.0(7392)),但它在网络浏览器或API中都不起作用.mp3直播流工作正常.

任何线索,为什么AAC不起作用,甚至文件说它应该?BR SteN

streaming aac audio-streaming windows-phone-7 icecast

5
推荐指数
1
解决办法
966
查看次数

XMLHttpRequest和http流

我的目标是从浏览器读取HTTP MP3音频流并访问原始音频数据.

  • HTML5 <audio>让我可以轻松播放流,但据我所知,不会授予对原始音频数据的访问权限.它只是播放它.

  • JS XMLHTTPRequest可以通过HTTP下载文件并处理原始音频数据.它似乎是一个很好的候选者,但它受到限制:它不会授权访问二进制数据,直到下载完成(readystate = 4).在我的例子中,流是无限的,因此readystate永久保持在3并且XHR响应为空(这种行为在mozilla文档中有详细说明).请注意,我连接的服务器的跨源策略是Access-Control-Allow-Origin:*

代码示例适用于本地常规文件,但不适用于流.我在request.response.length上得到一个空指针异常

request = new XMLHttpRequest();
//request.open('GET', 'test.mp3', true);
request.open('GET', 'http://domain.com/stream.mp3', true);
request.responseType = 'arraybuffer';
request.onload = function() {
  console.log("request onload");
  var audioData = request.response;
  audioCtx.decodeAudioData(audioData, 
    function(buffer) { myBuffer = buffer; source.buffer = myBuffer; }, 
    function(e){"Error with decoding audio data" + e.err}
  );
}
request.onreadystatechange = function() {
    console.log("ready state = " + request.readyState);
    console.log(request.response.length);
}
request.send();
Run Code Online (Sandbox Code Playgroud)

有没有人知道这些选项的替代方案或变通方法,以便在下载流时可以读取原始二进制数据包?

请注意,我无法控制服务器.这是一个icecast http流.此外,在浏览器方面,我想避免使用Flash.谢谢

编辑:为了澄清可能的跨源问题,JS在托管在localhost服务器上的页面上运行.

javascript audio html5 xmlhttprequest icecast

4
推荐指数
1
解决办法
3053
查看次数

Icecast 介绍文件

在 Ubuntu 16.04 上运行 Icecast 2.4.99.2 只是文件并想添加一个介绍文件。使用从 Darkice 默认声卡输入安装的工作源,当我将标签添加<intro>到安装的 Icecast 配置文件时,它会播放,但没有任何跟随。

<mount>
        <mount-name>/archive</mount-name>
        <max-listeners>5</max-listeners>
        <fallback-mount>/high_quality.mp3</fallback-mount>
        <intro>/high_quality.mp3</intro>
        <fallback-override>1</fallback-override>
        <hidden>0</hidden>
</mount>
Run Code Online (Sandbox Code Playgroud)

mp3 文件的文件权限:

user@stream:~/StationIDs$ sudo ls -lah /usr/share/icecast2/web/high_quality.mp3
-rwxr--r-- 1 root root 138K Nov 14 17:20 /usr/share/icecast2/web/high_quality.mp3
Run Code Online (Sandbox Code Playgroud)

我已阅读格式需要匹配,因此我使用 darckice.cfg 使用 128kps 比特率lame来从wav格式进行编码。

user@stream:~/StationIDs$ mediainfo high_quality.mp3
General
Complete name                            : high_quality.mp3
Format                                   : MPEG Audio
File size                                : 138 KiB
Duration                                 : 8s 777ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 128 Kbps
Writing …
Run Code Online (Sandbox Code Playgroud)

internet-radio icecast

4
推荐指数
1
解决办法
1500
查看次数

Icecast 传输层协议 - TCP 还是 UDP?

我似乎没有找到答案,所以我问你。现有的 Icecast2 服务器是否使用 TCP 或 UDP 来广播流数据?我知道它使用自定义的基于 HTTP 的应用程序层协议,所以人们可能会认为它是 TCP,但另一方面它是一个广播应用程序,所以 UDP 对我来说更合乎逻辑。如果它仍然使用 TCP,为什么要这样做?

udp tcp network-protocols internet-radio icecast

3
推荐指数
1
解决办法
4005
查看次数

是否可以在特定日期和时间安排 Liquidsoap 来源?

我试图安排一个 Liquidsoap 流媒体源在未来的特定日期和时间播放。我相信这可以使用 Liquidsoapswitch命令来完成,但我无法理解此处描述的文档: http: //liquidsoap.fm/doc-1.2.0/reference.html#switch

使用液体皂可以吗?如果我能简单地传递一个时间戳,我会很好。

icecast liquidsoap

3
推荐指数
1
解决办法
2886
查看次数

Icecast 2和SSL

我正在努力使工作陷入困境2和我的letencrypt SSL没有运气。到目前为止,我所做的是构建了带有openssl支持的icecast 2,并且我也使其运行了,但是它总是在日志文件中给出下一个错误。

[2018-03-15  12:48:21] WARN connection/get_ssl_certificate Invalid private key file /usr/local/icecast/share/fullchain.pem
[2018-03-15  12:48:21] INFO connection/get_ssl_certificate No SSL capability on any configured ports
Run Code Online (Sandbox Code Playgroud)

我已将以下证书文件设置为可由用户读取:理查德,当然我也与理查德用户一起运行服务器本身。

也许您知道什么地方出了问题?

您可能还会在这里看到我的配置文件:

  <listen-socket>
        <port>8443</port>
        <ssl>1</ssl>
  </listen-socket>
Run Code Online (Sandbox Code Playgroud)

在路径部分,我将ssl-certificate部分设置为SSL。

 <ssl-certificate>/usr/local/icecast/share/icecast/fullchain.pem</ssl-certificate>
Run Code Online (Sandbox Code Playgroud)

到目前为止没有。服务器本身正在端口上启动,但是通过https://访问时,它不会加载。使用http://端口(8443)可以正常工作。

任何帮助。

linux ssl openssl icecast

3
推荐指数
1
解决办法
4337
查看次数

在 nginx 下运行的 Icecast2 无法连接

我想开始说,我已经四处寻找这个问题的答案,但似乎没有其他人遇到过这个问题,或者没有人在做这个问题。所以,我最近在我的 Debian 服务器上安装了 icecast2,问题是我完全能够从连接到端口 8000 上的本地 IP 的本地网络向我的服务器广播,并在 radio.example.com 上通过互联网收听流因为我用 nginx 代理它,所以到目前为止完全没有问题。问题在于当我想广播到我用 nginx stream.example.com 提供的域时

我有两个理论,一个是代理没有给 icecast 提供源 IP,所以它认为它是从 127.0.0.1 广播的,另一个是 nginx 对数据流做了一些奇怪的事情,因此没有提供正确的格式给冰铸。

有什么想法吗?提前致谢!

这是nginx配置

server {
    listen 80;
    listen [::]:80;
    server_name radio.example.com;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Real-IP $remote_addr;


    location / {
            proxy_pass http://127.0.0.1:8000/radio;
            subs_filter_types application/xspf+xml audio/x-mpegurl audio/x-vclt text/css text/html text/xml;
            subs_filter ':80/' '/' gi;
            subs_filter '@localhost' '@stream.example.com' gi;
            subs_filter 'localhost' $host gi;
            subs_filter 'Mount Point ' $host gi;
    }
} …
Run Code Online (Sandbox Code Playgroud)

streaming nginx broadcast stream icecast

3
推荐指数
1
解决办法
4965
查看次数

从缓存而不是实时流的Firefox流

我们构建了一个互联网广播流媒体,该流媒体广播利用了一个Icecast服务器通过html5音频标签将MP3传输到Firefox。但是,有时由于任何原因(断开连接等),流媒体都会停止,并且当您重新启动流媒体时,它会从会话开始时开始流媒体播放,这使我们相信它正在播放浏览器缓存中的内容。

使流媒体播放实际实时流的唯一方法是删除Firefox中的历史记录。在其他浏览器中不会发生这种情况。如果使用Flash后备广告而不是html5音频代码,也会发生这种情况。

考虑过使用以下脚本,但认为它不适用于这种情况。

<meta http-equiv="Cache-control" content="no-cache" />
Run Code Online (Sandbox Code Playgroud)

任何见解都会有所帮助。谢谢。

firefox html5 stream internet-radio icecast

2
推荐指数
1
解决办法
1918
查看次数

使用 Exoplayer 从 Icecast 流中提取元数据

自从从 Mediaplayer 切换到简单的 Exoplayer 实现后,我注意到加载时间有了很大改善,但我想知道是否有任何内置功能,例如流式传输音频时的元数据更改侦听器?

我已经使用一个简单的例子实现了 Exoplayer,如下所示:

    Uri uri = Uri.parse(url);
    DefaultSampleSource sampleSource =
            new DefaultSampleSource(new FrameworkSampleExtractor(context, uri, null), 2);
    TrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
    mExoPlayerInstance.prepare(audioRenderer);
    mExoPlayerInstance.setPlayWhenReady(true);
Run Code Online (Sandbox Code Playgroud)

android metadata icecast exoplayer

2
推荐指数
1
解决办法
5238
查看次数

在 android studio 中为 ndkBuild 执行外部原生构建时发生错误

我使用coolMic repo从Android 设备广播音频。

但是当我在 android studio 中导入它时出现以下错误:-

E:\New folder (2)\CoolMicApp-Android\app\build.gradle
Error:executing external native build for ndkBuild E:\New folder (2)\CoolMicApp-Android\app\src\main\jni\Android.mk
Error:executing external native build for ndkBuild E:\New folder (2)\CoolMicApp-Android\app\src\main\jni\Android.mk
Run Code Online (Sandbox Code Playgroud)

我检查了一些资源,但没有帮助解决这个问题。也从我按照以下步骤操作的coolMic文档: -

How to build coolmic:
1. Download Android Studio and the NDK
2. Clone this repository
3. Run the following commands:
$ git submodule init
$ git submodule update --init --recursive
4. Import the Project into Android Studio. Select gradle-wrapper. 
5. Hit build(Arrovdown with 011001 next to it. 
6. …
Run Code Online (Sandbox Code Playgroud)

android icecast ndk-build

2
推荐指数
1
解决办法
1万
查看次数