- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 老年人听力健康讲座课件.pptx VIP
- 【精品资料最新版】楼面及屋面恒荷载取值 .doc VIP
- cetol公差分析培训课本.pdf VIP
- 《企业财务会计(第五版)》教案 第三章 应收账款.pdf VIP
- 2025年广东汕头市高三一模高考历史试卷试题(含答案详解).docx VIP
- 2023届上海市高考黄浦区高三年级一模考试英语试卷(附答案).pdf VIP
- 全国优质课一等奖统编版语文一年级上册《小小的船》课件.pptx
- 2025年法院司法辅助人员过关检测试卷附答案详解【精练】.docx VIP
- 我与外星人对话实录四.doc VIP
- 2025年法院司法辅助人员过关检测试卷【研优卷】附答案详解.docx VIP
文档评论(0)