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浏览器查看目录下面文件的列表,查看的效果如下:

      Android[安卓] 版Air Video 远程播放电脑视频

      配置方法:

      使用文本编辑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已经可在手机上直接看了

    Android[安卓] 版Air Video 远程播放电脑视频

七)革命尚未成功,试一下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="<%=path +file%>">

        </video>

      </div>

 

初步分析的结果,视频网页为了同时支持在IE、Chrome、Android、iOS播放视频,需要根据HTTP请求消息头的浏览器类型判断,嵌入不同的视频播放代码,甚至提供不同的视频文件格式。iOS真的就只能支持MP4的播放,其他格式都不支持….

 

Android[安卓] 版Air Video 远程播放电脑视频,布布扣,bubuko.com

Android[安卓] 版Air Video 远程播放电脑视频

上一篇:在 java 1.8.0 版本的环境下,进行 android apk 的签名操作


下一篇:Android系统开发(2)——GDB调试工具