Knightjie的gravatar头像
Knightjie 2018-09-28 16:05:56
Red5之基于Red5的视频点播系统开发(三)

    好久没更新博客了,中间被调到其他项目组,也一直没搞这个。现在花点时间再重新写一下,继续准备把关于Red5的点播和直播写完吧。

   关于Red5的点播,我只做一个简单的介绍吧,至于要做成大项目,还要根据公司项目的需要不同来说,因公司而异吧。基本的实现如下:

我们把red5-server-1.0.10-M4.tar.gz,解压后的目录。如果是在windows环境下,直接点击red5.bat运行正常即可,如果有报错,请检查jdk或者留言。

如果是在Linux环境下,建议用命令nohup  /root/red5-server/red5.sh &

运行,这样就可避免一直打印日志。nohup命令不熟悉的,请自行百度。

点开webapps目录,如下图:

Red5之基于Red5的视频点播系统开发(三)

简单说下,我们都知道做javaweb的开发,最终项目会部署到webapp下。下图是Red5解压后自带的目录,我们在这里也可以新建一个目录,例如:MyProject,

然后将oflaDemo内的文件全部复制过来,至于为啥全部要复制,我在下面简单讲一下吧。

Red5之基于Red5的视频点播系统开发(三)

打开oflaDemo目录,看下里面的几个文件夹。

Red5之基于Red5的视频点播系统开发(三)

①.streams文件夹,主要用于存放你点播的视频和图片。图片可以是你视频的截图,这样可以让别人先大概知道视频的内容吗,也可以是任意的图片。

②. WEB-INF文件夹,这个文件夹内我们主要关注一下red5-web.properties这个文件。如果你前有新建文件夹,例如:MyProject,那么这个文件也

需要做对应的修改。webapp.contextPath的值就则改为MyProject。

其中webapp.contextPath用于指定项目的目录名,webapp.virtualHosts用于指定监控的IP,默认为*表示监控所有ip,也可根据项目需要设置,

如:webapp.virtualHosts=192.168.2.28,如果要设置多个ip,用逗号隔开。

webapp文件夹内,文件red5-web.xml是用来指定该应用程序在webapps目录下加载的程序集以及相关的beans。

③index.html文件,我们做点播的web界面默认是指定访问这个文件的,这个待会后面再重点讲解。

④jwplayer.js和player.swf,这两个是web点播界面的视频播放插件所需的。Red5做视频点播,web界面默认用的嵌入的插件就是jwplayer。

上面讲了这么多,下面开始真正聊聊关于点播的事情了。

windows环境下,我们点击red5.bat正常启动后。

可以直接http://localhost:5080/oflaDemo/index.html去访问index文件,如下所示,可以直接点播视频。

Red5之基于Red5的视频点播系统开发(三)

下面我们重点看下这个index.html文件的内容,看下它里面关于jwplayer的一些配置参数。

用文档编辑工具打开index.html,我们着重关注下面的代码:

<div id='mediaspace'>This text will be replaced</div>
<script type='text/javascript'>
  jwplayer('mediaspace').setup({
    'flashplayer': 'player.swf',
    'file': '2a929300-0b5b-45cd-a278-b95ea4f31df3.mp4',
    'streamer': 'rtmpt://localhost:5080/oflaDemo',

    'image':'http://localhost:8080/red5-server/a33758d6-415b-4788-b60b-aa31477534f6.JPG',
    'controlbar': 'bottom',
    'width': '720',
    'height': '480'
  });
</script>

div模块,如果你想有多个点播视频,记得id不要重复哦。

下面是script脚本的部分,jwplayer就是在这里配置的:

⑴flashplayer用于指定视频播放的插件,这里就是oflaDemo文件夹下的player.swf,如果你将player.swf放到其他文件夹,记得要指定路径。

⑵file用于指定我们播放的视频文件。需要注意的是,这个文件是放在oflaDemo文件下的streams文件夹里。当然,值得一提是,这个文件可以通过接口去指定,这样可以避免源文件的暴露。文件的来源,我们可以在项目中

做视频的上传功能,然后放在指定目录里,做开发的小伙伴们,你们懂得。

⑶streamer 用于指定流媒体播放的协议地址。这里是写死的,其实我们也可以用接口做,动态获取它,本人已在项目中测试过。

⑷image用于指定点播视频框的图片,如果不指定默认就是黑框。这个也可以在项目中,上传图片然后通过接口去获取,如:'image':'http://localhost:8080/red5-server/a33758d6-415b-4788-b60b-aa31477534f6.JPG',这个图片也是放在streams文件夹里的,不然会获取不到。

还有关于jwplayer的宽高设置等,如果还需其他配置参数,读者可以去了解一下jwplayer的相关资料。

好了,到此关于点播的简单说明就到这。至于你说想做成想爱奇艺、搜狐视频那样的点播界面呢,不是不可以,那就是web前端开发的事咯,这里只做简单的讲解。

下一章会具体讲讲直播的开发事情,相对于点播,直播要复杂一些。点播只是从做拉流的工作,而直播不仅涉及拉流,还有推流。

  本人的博客更新有点慢,项目忙,各位大神谅解一下哈。如果本博客有什么不对的地方,或是需要改进的地方,欢迎吐槽或是留言。本博客原创,转载请注明出去。


打赏

已有1人打赏

最代码官方的gravatar头像
最近浏览
小于一直在  LV1 2021年7月1日
木丁 2021年6月26日
暂无贡献等级
foxmanzs521 2021年5月26日
暂无贡献等级
zuidama888  LV2 2020年4月28日
某天天  LV1 2020年4月27日
TianWenjin  LV4 2020年4月16日
18312477462 2020年4月8日
暂无贡献等级
doremi  LV6 2020年3月29日
yang000 2020年3月16日
暂无贡献等级
bigvegetable 2020年2月20日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友