使用FFmpeg实现ICY元数据支持

3
有没有办法使用FFMpeg从shoutcast流中获取ICY元数据? 一种方法是自己处理连接/流,并向ffmpeg发送Custom IOStream。
还有其他简单的方法吗?或者是否有可用的demuxer?
谢谢。

什么是ICY元数据?你能分享一些链接吗? - Zhomart
1个回答

5
这里曾经有讨论支持它的补丁:http://web.archiveorange.com/archive/v/yR2T400567mWEyyZHg3k,但是似乎还没有实现。建议你自己解析这个内容。参见我在这里的回答:https://dev59.com/V2445IYBdhLWcg3wWI6L#4914538。或者你可以直接访问SHOUTcast服务器上的/7.html,你会得到类似这样的一行:
1,1,15,625,1,128,Oh Mercy - Stay, Please Stay

这些字段包括:
  1. 听众数量
  2. 流状态(1表示正在播放,0表示源不在)
  3. 此服务器运行期间的最高听众峰值
  4. 服务器配置允许的最大同时听众数
  5. 基于IP的唯一听众人数
  6. 当前比特率(以千位为单位)
  7. 标题。(请注意,即使您的标题中有逗号,它也不会被转义或者其他操作。)
但请注意,/7.html 并不总是非SHOUTcast服务器上都可以使用,而且在新版本的beta版中可能不可用。虽然这是一种快速和简便的方法,但最好还是解析发送给客户端的元数据。

值得注意的是,/7.html 是在 Shoutcast 2 中完成的。在这种情况下,您将需要解析 XML:http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2_XML_Reponses#Equivalent_of_7.html - ThiefMaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接