经过一个星期的搜索,将结果整理如下。
客户端播放器采用flowplayer,格式转换工具采用ffmpeg,服务器采用tomcat。将flv文件放在tomcat的root目录下,html代码中嵌入flowplayer播放器并添加flv文件的地址即可实现flv文件在本地的播放。如下图。
这里html文件是将flowplayer安装目录中的一个实例文件进行简单修改得到的。代码如下:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<!-- A minimal Flowplayer setup to get you started -->
<!--
include flowplayer JavaScript file that does
Flash embedding and provides the Flowplayer API.
-->
<script type="text/javascript"
src="http://localhost:8080/flowplayer/flowplayer-3.2.11.min.js"></script>
<!-- some minimal styling, can be removed -->
<link rel="stylesheet" type="text/css"
href="http://localhost:8080/flowplayer/example/style.css">
<!-- page title -->
<title>FLV播放测试</title>
</head>
<body>
<div id="page">
<!-- this A tag is where your Flowplayer will be placed. it can be anywhere -->
<h1>FLV播放测试</h1>
<a href="http://localhost:8080/1.flv"
style="display: block; width: 520px; height: 330px" id="player">
</a>
<!-- this will install flowplayer inside previous A- tag. -->
<script>
flowplayer("player", "http://localhost:8080/flowplayer/flowplayer-3.2.12.swf",{clip: { autoPlay: false }});
</script>
</div>
</body>
</html>
其中要用到一个css文件,代码如下:
body {
background-color:#fff;
font-family:"Lucida Grande","bitstream vera sans","trebuchet ms",verdana,arial;
text-align:center;
}
#page {
background-color:#efefef;
width:600px;
margin:50px auto;
padding:20px 150px 20px 50px;
min-height:600px;
border:2px solid #fff;
outline:1px solid #ccc;
text-align:left;
}
h1, h2 {
letter-spacing:-1px;
color:#2D5AC3;
font-weight:normal;
margin-bottom:0px;
}
h1 {
font-size:22px;
}
h2 {
font-size:18px;
}
.less {
color:#999;
font-size:12px;
}
a {
color:#295c72;
}
还有一个小问题是,虽然flowplayer是开源软件,但是免费版有一个logo,全屏之后右上角也有一个大的logo。商业版是没有logo的。破解方法参考这篇文章。
http://seaskys.iteye.com/blog/1014133
至于要不要使用流媒体服务器,这个问题还有待讨论。是不是不用流媒体服务器的话,必须等到文件传输之后才能播放?如果是flv格式的话流媒体服务器还有没有必要?备选的流媒体服务器是red5。如果将使用jdk1.7版本,则red5启动失败,换成1.6版本则没有问题。red5还有个bug,如果用exe文件进行安装的话,则自带例子程序在网页无法显示。使用zip解压则可以正常显示。
关于格式转换,目前土豆、优酷已经在使用f4v格式以实现高清播放。flv格式文件后缀改成f4v仍然可以播放,反之亦然。ffmpeg不支持f4v格式的转换。如果要使用f4v格式的话,目前还没有有效的解决方案。
还有一个值得注意的问题是,目前迅雷7版本可以对网络视频链接进行嗅探并边下边播。但公司主要客户是保密机构,应该尽可能避免第三方软件的使用。
----------------------------------------------------------------------------分割线------------------------------------------------------------------------
关于flowplayer的破解:
网上可以找到3.2.6的破解版
我们只需要其中的这两个文件:
然后嵌入破解后的播放器就ok了,如下:
<a
href="http://192.168.1.102:8080/2.flv"
style="display:block;width:676px;height:429px"
id="player">
</a>
<script>
flowplayer("player", "../service/flowplayer.commercial-3.2.6-dev.swf",{clip: { autoPlay: false }});
</script>
如果要播放本地的视频文件,需要放在tomcat目录下或者启用IIS。
关于流媒体服务器:
经过测试,如果将视频放在tomcat的root下,则播放时未缓冲部分无法拖动播放。使用red5能否解决这个问题还有待研究。
to be continued...