darwin介绍

darwin流媒体服务器开源技术基地,介绍darwin概念、darwin任务、darwin模块和darwin分析心得,锐英源软件是darwin调试和二次开发专家。

darwin流媒体开源软件是由apple公司推出和维护的,它实现了rtsp协议常用部分、rtp协议和rtcp协议,我们对于darwin修改的主要部分有:验证模块加入支持信息;固定码流改为动态码流支持客户端缓冲;音频和视频分离发送模式改为统一方式降低复杂度。

darwin streaming server使用标准的实时传输协议/实时流媒体协议 (rtp/rtsp),通过互联网实时传送媒体。darwin streaming server 也能提供对传送 h.264、mpeg-4 和 3gpp 文件的固有支持——因此,你可以在 mac 和 linux、windows 上的任何与标准兼容的媒体播放器上执行你的内容,当然还包括手机和接收盒等各种兼容标准的设备。不仅如此,它还允许你使用 icecast 兼容协议,通过 http 传送标准的 mp3 文件到 mp3 客户端。

这里共享出关于反射模块的分析文档,drawin里的反射是指服务器a可以是其它服务器的直播源,这样可以用反射机制形成一个直播级联系统。

锐英源darwin研究精华

  • bug修改
  • 点播功能升级
  • 时移功能
  • 配置
  • 运行维护

这里列出时移功能的总结(部分),以资借鉴:

原理描述

通过rtsp协议的play请求里的range内的信息,区分正常反射流和时移流,对于时移流,以时移数据源为数据来源;对于正常反射流,用达尔文的默认缓冲数据源为数据来源。

时移数据源管理要做到添加、删除、定位、加载、保存、过渡和时移数据与达尔文默认缓冲机制结合功能。

添加指的是把达尔文默认缓冲里删除的数据包加入到时移数据源内。

删除指的是把超过时移时限的时移数据从管理范围内删除。

定位指的是把适合range信息时间的管理单元确定。

加载指的是,由于内存不可能缓冲过大数据,时移数据不可能全部保存到内存中,只能实现小部分在内存,大部分在硬盘,在这种情况下,如果需要的时移数据不在内存中,而是在硬盘上,对数据有一个从硬盘加载到内存管理单元内的一种情况。

保存指的是把累积够一个时移单元的时移数据写入到硬盘的过程。

过渡指的是在进行时移时,前一个时移单元已经发送完了,需要发送下一个时移单元时的处理过程。

时移数据与达尔文默认缓冲机制结合指的是把时移数据放到达尔文默认缓冲机制里,还会使这个机制正常工作,使时移的数据包能够发给客户端。