小弟不才,第一次使用JSP做在线视频播放,需要播放格式有AVI,MP4,WMV等(服务器里已经存储了这几种格式了,后续还有人通过CS结构的项目上传更多的视频文件,CS结构的项目我没办法修改,为了达到能网页播放这些视频只是假设了TOMCAT)
问题: 使用 MEDIA PLAYER 应该是可以播放WMV的,可以边缓冲边播放,但是AVI的格式不行。
思路:以为是解码器的问题和AVI不支持流媒体。也使用过百度影音等工具播放,但是连WMV 的格式也需要全部下载完成后才可以播了。
提问: 网上很多AVI等格式 百度影音和快播等 都可以边缓冲边播放,他们是需要假设 流媒体服务器?
我现在的环境就是TOMCAT 将路径映射到 视频文件夹下,然后JSP页面调用视频URL。
请各位大神帮忙分析以及提供一下思路。 在线万分感谢!
------解决方案--------------------
使用流媒体。使用ffmpeg转码。
播放器用这个,我做过:http://flowplayer.org/tools/demos/
------解决方案--------------------
不是播放器问题!你要把你所有的后台视频格式转换成flv格式的。现在基本上大型在线视频网站都是flv格式的。我上面说了用ffmpeg可以转成flv格式的。api或者exe都可以做到。你自己研究下,转成flv之后基本上用一个flash播放器都可以变下载变放,而且随意拖动。
我直线写的一个Converter,你可以参考下
package com.cemso.util;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class VideoConverter {
private final static String BASE_PATH = FileOperationTool.DEFAULT_VIDEO_DES_PATH;
private final static String FLV_PATH = FileOperationTool.DEFAULT_FLV_PATH;
private static String PATH = "";
private static String FILE_NAME = "";
private static final Log log = LogFactory.getLog(com.cemso.util.VideoConverter.class);
public static boolean convert(String fileName) {
PATH = BASE_PATH + fileName;
FILE_NAME = fileName;
if(log.isDebugEnabled()){
log.debug("start to convert video to flv format...");
log.debug("the file name is : " + FILE_NAME);
log.debug("the file path is : " + PATH);
}
if (!checkfile(PATH)) {
return false;
} else {
if (process()) {
if(log.isDebugEnabled()){
log.debug("process() ok");
}
return true;
} else {
return false;
}
}
}
private static boolean process() {
int type = checkContentType();
boolean status = false;
if (type == 0) {