基于FMS的跨平台视频传输方案的研究与实现.docVIP

基于FMS的跨平台视频传输方案的研究与实现.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FMS的跨平台视频传输方案的研究与实现

基于FMS的跨平台视频传输方案的研究与实现   摘要:随着现代网络技术的发展,基于网络的音视频应用需求越来越高,从传统的视频网站,扩展到视频会议、多媒体教学、在线医疗等诸多领域。而随着手机、平板电脑的普及,客户端设备也呈现多元化特征,所以需要一种高效高质的跨平台视频传输技术。本文讨论了在FMS服务端的基础上,实现不同终端的视频推流和播放技术。与其他技术作比较,这是一个着重介绍在移动端设备通过移植ffmpeg推流,和利用HLS协议播放的方案,而PC端建议采用flex技术,最终形成一个完整、高效的跨平台视频传输技术方案 关键词:FMS 跨平台 RTMP ffmpeg HLS 中图分类号:TN919.8 文献标识码:A 文章编号:1007-9416(2016)11-0106-02 1 系统整体方案 FMS(Flash Media Service)是Adobe公司出品的流媒体服务器,同时也是极具弹性的开发环境,它提供了强大的多用户、高质量音视频功能,自适应不同的带宽环境,可用于创建多样的交互多媒体网络应用。FMS除了大量应用于各类视频网站,对视频会议、视频监控、多媒体教学等领域,也都能提供方便优质的流媒体服务。目前国内一些厂商的多媒体服务平台也是基于FMS开发的 然而,随着Android和IOS系统停止对flash的原生支持,实现一个跨平台的统一视频服务变得困难,往往需要从底层开始自主研发,成本高且通用性差。从FMS4.5版本之后开始支持的Http Dynamic Streaming技术针对苹果的HLS方案提出了基于HTTP的流媒体传输方案,增加了对HLS协议的支持,解决了移动端播放视频格式的问题,这为FMS服务于不同的终端提供了便捷的技术支持 具体的PC客户端仍可采用Flex技术,方便地实现视频流的上传和播放,其中视频的上传利用rtmp协议,播放采用flash技术;针对移动端视频传输,向服务器推流也必须符合rtmp协议。在android和IOS系统要实现rtmp推流有多种技术方案可选,综合考虑开发成本和视频格式的统一性,本文主要介绍利用ffmpeg原生代码,并移植到android和IOS系统的解决方案。移动端的播放则借助HLS协议,最终实现跨平台的视频传输 2 PC端采用flex技术实现视频传输 flex同为Adobe公司的产品,结合FMS进行开发尤为简便,但需要flash技术支持。这在台式电脑操作系统中不成问题,但运用在移动端需借助Adobe AIR技术较困难,考虑到兼容性等诸多因素,使用并不广泛,所以当前在移动端不建议采用 PC端运用Flex结合FMS实现视频点播、直播的关键代码如下: 2.1 点播服务器上的视频文件 nc.connect(”rtmp:// FMS服务器IP地址:端口号/PlayStreams路径”);//连接FMS ns=new NetStream(nc); ns.play(”视频文件名”,0); 2.2 向服务器推流,用于直播 nc.connect(”rtmp://FMS服务器IP地址:端口号/LiveStreams路径”);//连接FMS ns=new NetStream(nc); ns.attachCamera(cam);//调用摄像头 ns.attachAudio(mic);//调用麦克风 ns.publish(“视频流名称”,”live”); 2.3 播放直播流 nc.connect(”rtmp://FMS服务器IP地址:端口号/LiveStreams路径”);//连接FMS ns=new NetStream(nc); ns.play(”视频流名称”);//对应于视频流发布端的publish(”视频流名称”,”live”). 其中nc为NetConnection类型对象,用于连接FMS;ns为NetStream类型对象,代表视频流 3 移动端实现视频发布 利用FMS作为视频服务器,要求视频推流符合RTMP协议。在移动端有多种开发库可以实现,例如商业上应用比较多的vitamio、ijkplayer、ffplayer等,本质上它们都是基于ffmpeg的开源项目。直接使用这些开发库,开发周期短难度低,但技术上总受到诸多限制。所以本文介绍直接使用FFMPEG实现视频处理,而后移植到移动端操作系统中的开发方法,更加灵活可控 3.1 ffmpeg推流 ffmpeg实现视频推流首先需指定协议,然后向服务器写入视频数据。核心函数如下: avformat_alloc_output_context2(outfmt_ctx, NULL, “flv”, out_fil

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档