标签: icecast

我怎么能用HTML5播放shoutcast/icecast流?

是否可以使用HTML5播放shoutcast/icecast流?

如果是这样,我该如何实施呢?

streaming html5 shoutcast audio-streaming icecast

26
推荐指数
3
解决办法
6万
查看次数

iPhone HE-AAC流媒体直播(3G)

使用jPlayer开发了一个互联网广播流媒体,它使用带有jQuery的html5音频标签,并为不支持的浏览器提供闪回功能.在iPhone(iOS 5.0.1)上测试播放器后,我们遇到了一个非常特殊的问题.

当iPhone连接到WiFi时,它使用HE-AAC V2流@ 64kbps 44.1kHz(苹果产品的首选编解码器)完美地流式传输.然而,当iPhone连接到3G移动网络时,它会"断续续续"或每1-2分钟停止流动1-2秒(不会完全停止流式传输).令人不安的是,当iPhone被迫以相同的比特率使用单独的MP3流时,它没有这个问题并且在3G上运行良好.

更新5

我们最近购买了3G/4G Sprint移动热点设备,并使用该设备测试了这个问题.当iPhone连接到移动热点时,它显示为连接到wifi设备,即使实际连接是通过3G/4G,也不会出现问题.这可能会回到iPhone不通过HTTP直播和直接连接到移动网络处理HE-AAC的问题.

更新4

将iPhone更新到iOS 5.1但问题仍然存在.

更新3

请阅读此处有关连接到移动网络时脚本无法正确呈现的各种问题.手指似乎指向可能插入代理以服务网页的移动网络运营商,例如用于缩小图像尺寸.它也可能会注入一些JavaScript页面.测试页面可以在这里找到 注意:此页面使用HE-AAC,因此它只适用于iPhone ...

UPDATE

根据Apple针对iOS设备的HTTP Live Streaming doc,"仅音频内容可以是MPEG-2传输,也可以是MPEG基本音频流,无论是采用ADTS标头的AAC格式还是MP3格式." 我们的音乐服务器使用OddcastV3编码器向icecastV2服务器发送三个流(MP3,HE-AAC V2和Oggvorbis).不确定编码器是否正在插入HE-AAC V2流的ADTS标头.有没有办法检查这个?

iphone mp3 mobile-safari http-live-streaming icecast

23
推荐指数
1
解决办法
2405
查看次数

Icecast 2:协议描述,使用C#流式传输

我需要编写一个Icecast 2客户端,它能够将来自计算机的音频(mp3文件,声卡录音等)传输到服务器.我决定在C#上写这样一个客户端.

两个问题:

1)了解我可能/应该/必须使用的通用指南(最佳实践,可能是技巧)非常有用,以便在C#中无缝地使用流式音频(当然是通过网络流式传输).一些关于TCP/IP流通用的一般技术文档,特别是ICY,关于应用程序整体架构的建议和注释将非常受欢迎.

2)是否有关于Icecast 2流媒体协议的良好文档?我在Icecast的官方网站上找不到那些文档.我不想直接从它的源代码中提取协议描述.如果协议真的很简单,那么有人可以在这里提供它的摘要吗?

.net c# icecast

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

是否有可能从HTML5音频元素中获取Icecast元数据?

我正在使用音频元素从icecast服务器流式传输ogg源.音频元素是否提取了冰冷的元数据,是否有办法通过javascript访问它?

基本上,我想显示我正在播放的广播电台的"当前播放"信息.我有什么选择?

谢谢!

javascript audio html5 icecast

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

Icecast和Darkice的高音频延迟

我已经成功地在我的ubuntu机器上安装了icecast和darkice,并能够在我的局域网上直播.但令我失望的是它有15秒到20秒的延迟.这是非常糟糕的表现.我不认为这是因为我的局域网连接,因为即使我试图在同一台ubuntu机器上听也有延迟!

我试图将icecast配置为没有突发大小,这意味着没有缓冲,这有助于我将延迟减少到大约6秒到8秒.所以,如果您有任何建议或非常好的配置值,那将对我有很大的帮助.

PS我正在播放的格式是mp3.有人建议我应该使用opus编解码器,但我不认为icecast或darkice支持它.

audio-streaming low-latency internet-radio icecast

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

为icecast服务器开发客户端

我正在为icecast服务器开发客户端(www.icecast.org).任何人都可以告诉我,他们用于流媒体内容的格式是什么?

我正在查看他们的页面,但根本没有关于流格式的信息.

然后我检查了Wireshark跟踪,由于我的理解,我在200 OK响应GET请求时收到的音频数据的格式,它只是一个没有包含任何元数据的普通二进制音频数据,因此与SHOUTcastHTTP相比较直播(HLS)它是相对简单的方法.

是对的吗?有经验吗?

Wireshark跟踪片段:

GET /bonton-128.mp3 HTTP/1.1
Host: icecast3.play.cz
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-US
Accept-Encoding: gzip, deflate
Connection: keep-alive


HTTP/1.0 200 OK
Content-Type: audio/mpeg
icy-br:128
ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
icy-br:128
icy-description:Radio Bonton
icy-genre:Pop / Rock
icy-name:Radio Bonton
icy-pub:0
icy-url:http://www.radiobonton.cz
Server: Icecast 2.3.2
Cache-Control: no-cache

Here are then aac or MPEG data
Run Code Online (Sandbox Code Playgroud)

感谢致敬,

斯登

streaming mp3 aac icecast

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

来自Icecast服务器的音频无法在Chrome中播放

我无法获取由Icecast服务器提供的静态内容(mp3文件)以及使用HTML5在Google Chrome浏览器中播放.我们通过Icecast服务mp3的原因是政策:CPB要求它们"流式传输"而不是"下载",因为我们是公共广播.我们的现场音频流在Chrome中播放得很好.

如果您将我的Icecast 2.4.3服务器提供的MP3的URL直接放入谷歌浏览器的网址栏中,则无法播放.在Firefox,IE,Safari等中做同样的事情.它播放!试试吧:

https://streaming.kansaspublicradio.org:8001/mp3/First_0713886.mp3

(我使用的临时解决方案是Flash,但Chrome的最新更新(v60.0)默认情况下阻止Flash,"始终允许此网站"选项似乎不起作用,并且显示Flash的小图标被阻止的更加离散.请在此处尝试:http://kansaspublicradio.org/kpr-news/midwest-farmers-hope-boost-online-grocery-shopping)

我最好猜测为什么会发生这种情况是因为它与此有关:https://developers.google.com/web/updates/2016/03/play-returns-promise?hl = en

因此,我尝试重现他们的代码示例,其中他们使用HTML5 Media Capture来播放音频,而无需用户交互.但是有了这个音频的URL,它就无法播放并抛出这个错误:Uncaught (in promise) DOMException: The element has no supported sources.尝试一下:https://jsfiddle.net/wo94xohr/2/它只能在Chrome中失败而不是Firefox或其他.

我再次尝试但没有HTML5 Media Capture的东西.仍然没有骰子.试试吧:https://jsfiddle.net/yrhets74/

此外,如果你看一下响应标题,你会看到"内容范围:字节0-0/0"......这是否意味着什么?


更新:我正在测试这是否是CORS(跨源资源共享)问题.我已经将jsfiddle更新为:

var audioElement = document.querySelector('#music');
audioElement.crossOrigin = "anonymous"; // CORS access restriction. Worth a shot but no dice
audioElement.type = "audio/mpeg"; // just in case? idk
audioElement.src = "https://streaming.kansaspublicradio.org:8001/mp3/First_0713886.mp3";

function startPlayback() {
  // .play() …
Run Code Online (Sandbox Code Playgroud)

javascript html5 google-chrome jplayer icecast

9
推荐指数
1
解决办法
1666
查看次数

使用Objective-C,C或C++向Icecast/SHOUTcast广播

我想在不使用自己的广播公司的情况下向SHOUTcast或Icecast服务器提供音频数据,因为我将在包括移动设备在内的各种平台上使用它.

我需要协议描述,开源项目或样本,以便能够使用Objective-C,C或C++将音频数据(从麦克风或文件)发送到SHOUTcast和Icecast服务器.

在哪里可以找到构建正确的SHOUTcast/Icecast源客户端所需的信息?

audio shoutcast objective-c broadcast icecast

8
推荐指数
1
解决办法
5480
查看次数

使用PHP显示Icecast2统计信息

我在使用PHP查看统计数据(观众,当前歌曲播放等)时遇到了一些麻烦,我找不到任何有关如何执行此操作的信息.

Icecast2附带了几个XLS文件,我可以将这些文件与PHP一起包含在我的网站中,但是我不想每隔5秒更新一次包含的DIV,这对于XLS文件不起作用.

谢谢!

php icecast

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

用于从Shoutcast/Icecast流中提取艺术家和标题的PHP脚本

我找到了一个可以从Icecast或Shoutcast流中提取艺术家和标题名称的脚本.我希望脚本在歌曲改变时自动更新,此时它只在我执行它时工作.我是PHP的新手,所以任何帮助将不胜感激.谢谢!

define('CRLF', "\r\n");

class streaminfo{
public $valid = false;
public $useragent = 'Winamp 2.81';

protected $headers = array();
protected $metadata = array();

public function __construct($location){
    $errno = $errstr = '';
    $t = parse_url($location);
    $sock = fsockopen($t['host'], $t['port'], $errno, $errstr, 5);
    $path = isset($t['path'])?$t['path']:'/';
    if ($sock){
        $request = 'GET '.$path.' HTTP/1.0' . CRLF . 
            'Host: ' . $t['host'] . CRLF . 
            'Connection: Close' . CRLF . 
            'User-Agent: ' . $this->useragent . CRLF . 
            'Accept: */*' . CRLF . 
            'icy-metadata: 1'.CRLF.
            'icy-prebuffer: …
Run Code Online (Sandbox Code Playgroud)

php shoutcast audio-streaming icecast

7
推荐指数
1
解决办法
9181
查看次数