首页 > 代码库 > Android[安卓] 版Air Video 远程播放电脑视频
Android[安卓] 版Air Video 远程播放电脑视频
在苹果的iOS下面,有个应用Air Video,可以在iOS下通过Wifi远程直接播放电脑里的视频,而不需要把视频复制到手机上再看。非常好用!最近用了Android的手机,想找类似的应用,找了很久都没找到。仔细想了下AirVideo的工作原理,和优酷等视频网站类似,在Android下面应该也可以有类似的方法实现。
今日在华为荣耀6上面终于验证通过了一个完美的方案,赶紧放上来和有同样需要的朋友们分享分享。
先说一下Air Video的工作原理:
1) 在Windows下面安装Air Video Server服务器,并设置允许远程观看的视频文件目录
2) 通过苹果的AppStore下载AirVideo客户端,并安装
Air Video苹果客户端是收费的,似乎还不便宜,当然越狱以后就不存在这个问题了
3) Air Video客户端连接Windows的服务端,可以看到服务端各目录的视频文件列表,并选择播放。其中:
MP4可以直接播放,RMVB\FLV等需要服务端实时转换成MP4的视频流,再传给iOS上的客户端
注:实时转换,看Windows系统的CPU占用其实还是挺高的,非常不环保
苹果里面AirVideo客户端播放视频的播放器,看起来和直接播放优酷等视频网站的播放器,看起来其实是一样的。于是怀疑,AirVideo发送到客户端的MP4视频流,和WEB环境下的MP4视频流可能是相同的,都是通过HTTP地址访问。当然,这种说法只是猜测,全无依据。基于该想法,只要建一个WEB服务,能在手机上通过该WEB地址提供视频流,手机上即可观看电脑上的视频。
具体步骤来了,折腾了几天,自己也没想到结果可以这么简单:
一)从网上下载TOMCAT并安装,我是从这个地址下载了绿色版TOMCAT5.5,如果原来已经有TOMCAT,可以跳过这一步
http://www.rsdown.cn/down/32748.html
a) 下载后可以瘦身一下,删除掉这几个目录下的内容后,整个目录只有5Mb左右(目录不能删)
webapps/
server/webapps/
conf/Catalina/localhost/
b) 如果原来已经安装了tomcat,已经有CATALINA_HOME环境变量,现在重新下载一个,需要:
- 使用文本编辑bin/startup.bat文件
- 在11行前面加上 REM,注释掉该行内容,否则仍会用系统的CATALINA_HOME环境变量
REM if not "%CATALINA_HOME%"== "" goto gotHome
c) 到conf目录下,采用最简单的server配置文件
- 重命名server.xml为server-normal.xml
- 重命名server-minimal.xml为server.xml
二)TOMCAT缺省不支持URL里面包含中文,这会导致文件名为中文的视频不能播放,方法:
使用文本编辑server.xml,设置Connector的URIEncoding为utf-8,如:
<Connector port="8080"URIEncoding="utf-8"/>
参考地址:http://www.williamlong.info/archives/469.html
三)设置视频文件目录的内容,允许通过TOMCATWEB发布。方法:
使用文本编辑server.xml,设置Host及Context,我的修改后如下
<Hostname="localhost" appBase="C:\TDDOWNLOAD\">
<Context path="/"docBase="." debug="0"/>
<Context path="/fd"docBase="C:\FDOWNLOAD\" debug="0"/>
</Host>
这样,可以通过http://localhost:8080/地址访问C:\TDDOWNLOAD\目录的视频文件;
通过http://localhost:8080/fd/ 地址访问C:\FDOWNLOAD\目录的视频文件;
四)使TOMCAT可以支持直接WEB浏览器查看目录下面文件的列表,查看的效果如下:
配置方法:
使用文本编辑conf/web.xml,查找listings,并设置参数为true。
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
五)在安卓手机上安装UC浏览器。相信很多人都已经使用UC,这个就不细说步骤了。
注:在同一个手机上试了UC和Chrome,发现Chrome只能下载RMVB/FLV,不能播放,但UC可以,因此,要求用UC
六) 此时,执行TOMCAT在bin目录下的startup.bat启动TOMCAT,并将手机和电脑连接到同一网络;
接下来,使用UC应该已经可以查看TOMCAT发布的网页了,UC的地址如:http://192.168.1.123:8080/,IP地址为TOMCAT所在电脑的地址
尝试点击其中的*.MP4文件,会出现下面的提示。选择[在线播放],哈哈,MP4已经可在手机上直接看了
七)革命尚未成功,试一下RMVB/FLV文件,发现还是不能看的。重新回到TOMCAT的配置文件
使用文本编辑器打开bin/web.xml,在mp4的设置下面,增加rmvb和flv的mime类型。
<mime-mapping>
<extension>mp4</extension>
<mime-type>video/mp4</mime-type>
</mime-mapping>
<mime-mapping>
<extension>rmvb</extension>
<mime-type>video/x-rmvb</mime-type>
</mime-mapping>
<mime-mapping>
<extension>flv</extension>
<mime-type>video/x-flv</mime-type>
</mime-mapping>
接下来,重启TOMCAT,重新在UC里面尝试点击*.RMVB和*.FLV的文件,如果都能够播放,说明你很运气。如果还是不行,实在不好意思,我只能做到这些了。本人使用一款酷派8150s低端手机测试,也同样不能看RMVB/FLV的视频,但荣耀6就非常正常。这可能和安卓操作系统版本,或厂商的定制有关。
其他补充:
1) Windows下面的Chrome也只能支持播放MP4;如果浏览器不能支持,但还是非常想要在手机上看RMVB/FLV,可以麻烦点,在电脑上先使用格式工厂都转换成MP4格式
2) Air Video, 格式工厂都是使用ffmpeg, mp4creator等开源项目转换MP4视频流的,并且是通过命令行调用。通过手机控制电脑转换格式为MP4,应该可以进一步研究,不过不是专业就太浪费时间了
3) 也尝试了使用jsp文件,来做视频文件的展示,安卓需要的HTML5非常简单,不过看起来效果和前面配置的结果没什么差别。HTML5网页嵌入视频代码范例如下
<divid="video"style="position:relative;z-index:100;width:100%;float:left;">
<video id="media" width="100%"autoplay="autoplay" controls>
<source src=http://www.mamicode.com/"">
</video>
</div>
初步分析的结果,视频网页为了同时支持在IE、Chrome、Android、iOS播放视频,需要根据HTTP请求消息头的浏览器类型判断,嵌入不同的视频播放代码,甚至提供不同的视频文件格式。iOS真的就只能支持MP4的播放,其他格式都不支持….