`
ren2881971
  • 浏览: 109980 次
社区版块
存档分类
最新评论

视频网站,将上传视频转换为flv。在页面上播放

    博客分类:
  • j2ee
 
阅读更多
哈哈  我的博客标题之所以写的这么白话。主要是为了以后方便自己查找资源。

前几天接手到一个上传视频并播放的需求。 可以简单的理解为小型的视频网站。 并具有基本的增删改查功能。

最初实现:
保持原有的上传视频格式,并通过不同的软件,RealPlay Windows media play 来在jsp上实现播放。
后来于哥说.这种需要用户安装软件的形式 很不友好。需要将上传视频的格式统一转换成flv,这样在网页上可以直接播放。


从昨天下午开始着手完成这部分内容。

主要思想是将上传后的视频格式。
通过java 调用服务器端的两个可执行性文件:1.ffmpeg 2. mencoder。
java的ProcessBuilder可以直接调用cmd命令来执行程序自动转化视频。
public class ConvertVideo{
      public void convertFlv(String ffmpegPath,String path1,String path2){
		List<String> commend = new java.util.ArrayList<String>();
		//String flvPath = "e:\\a.flv";
		commend.add(ffmpegPath);
		commend.add("-i");
		commend.add(path1);
		commend.add("-ab");
		commend.add("56");
		commend.add("-ar");
		commend.add("22050");
		commend.add("-b");
		commend.add("500");
		commend.add("-r");
		commend.add("15");
		commend.add("-s");
		commend.add("800x600");
		commend.add(path2);
        int flag = doProcess(commend);
		if(flag!=-1){
			deleteFile(path1);
		}
	}
   	public int doProcess(List<String> list){
   		int exitValue = -1;
		try{
			ProcessBuilder builder = new ProcessBuilder();
			builder.command(list);
			Process p = builder.start();
			exitValue = doWaitFor(p);
			if(exitValue!=-1){
		      System.out.println(">>>>>>>>> convert finished  >>>>>>>>>>>>>");
			} 
			return exitValue;
		}catch(Exception e){
		    e.printStackTrace();
		}
		    return exitValue;
	}
	public int doWaitFor(Process p){
	InputStream in = null;
	InputStream err = null;
	int exitValue = -1; // returned to caller when p is finished
	try {
		System.out.println("comeing");
		in = p.getInputStream();
		err = p.getErrorStream();
		boolean finished = false; // Set to true when p is finished

		while (!finished) {
			try {
				while (in.available() > 0) {
					// Print the output of our system call
					BufferedInputStream bi = new BufferedInputStream(in);
					Character c = new Character((char) bi.read());
					System.out.print(c);
				}
				while (err.available() > 0) {
					// Print the output of our system call
					BufferedInputStream bi = new BufferedInputStream(err);
					Character c = new Character((char) bi.read());
					System.out.print(c);
				}

				// Ask the process for its exitValue. If the process
				// is not finished, an IllegalThreadStateException
				// is thrown. If it is finished, we fall through and
				// the variable finished is set to true.
				exitValue = p.exitValue();
				finished = true;

			} catch (IllegalThreadStateException e) {
				// Process is not finished yet;
				// Sleep a little to save on CPU cycles
				Thread.currentThread().sleep(500);
			}
		}
	} catch (Exception e) {
		// unexpected exception! print it out for debugging...
		System.err.println("doWaitFor();: unexpected exception - "
				+ e.getMessage());
	} finally {
		try {
			if (in != null) {
				in.close();
			}

		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
		if (err != null) {
			try {
				err.close();
			} catch (IOException e) {
				System.out.println(e.getMessage());
			}
		}
	}
	// return completion status to caller
	return exitValue;
    }
	public void deleteFile(String str) {
		File file = new File(str);
		file.delete();
	}
	
}

本来是想支持rmvb格式视频的上传了,但是rmvb不能转换为flv,需要先转化成avi,再由avi转换成flv。但是这样一来。转换的时间太长了。还不如索性就直接提示用户上传指定的视频文件格式了。
这样一来我也省事了,也不用去操心rmvb的转换了。

---------------------------------------------------------------------------------
有了上传后转换好保存的视频。 那我们下一步就是在网上显示了。
上午找了一会。发现如果在网页上实现flv的播放。那么服务器端需要 有swf。
又找了一个别人已经写好的swf。扔在服务端上。就可以播放flv了。
这样在修修改改一些边边角角。  这个需求就算是完成了。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
									codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" height="380" width="500"> 
									<param name="movie" 
									value="<%=path1%>vcastr22.swf?vcastr_file=<%=path1%><%=info[0]%>.flv"> 
									<param name="quality" value="high"> 
									<param name="allowFullScreen" value="true" /> 
									<embed 
									src="<%=path1%>vcastr22.swf?vcastr_file=<%=path1%><%=info[0]%>.flv" 
									quality="high" 
									pluginspage="http://www.macromedia.com/go/getflashplayer" 
									type="application/x-shockwave-flash" width="800" height="600"> 
									</embed> 
								 </object> 
分享到:
评论

相关推荐

    上传视频到服务器并转换成flv格式实现在线播放功能

    为了确保视频能在各种浏览器中流畅播放,通常需要将用户上传的视频文件转换为一种跨平台、浏览器兼容性好的格式,例如FLV(Flash Video)。本文将详细介绍如何在服务器端处理用户上传的视频文件,将其转换为FLV格式...

    asp自动上传视频并转换为flv的代码

    在本场景中,我们关注的是如何使用ASP实现视频上传并自动将其转换为FLV格式的功能。FLV(Flash Video)是Adobe Flash平台广泛使用的视频格式,特别适合在网络流媒体应用中使用。 实现这一功能,我们需要以下几个...

    视频上传+转换成flv

    在IT行业中,视频上传、转换和截图保存是网络媒体服务中的关键环节,特别是当目标格式为FLV(Flash Video)时,它曾是互联网上广泛使用的流式视频格式。本项目涉及的技术点主要包括: 1. **视频上传**:在网页上...

    asp.net flv播放 转换

    因此,有时我们需要将FLV文件转换为这些格式,以便在各种设备和浏览器上流畅播放。 在ASP.NET中实现FLV播放,首先需要一个能够处理FLV格式的播放器。常见的解决方案是使用Flash组件,例如JW Player或FlowPlayer,...

    上传视频到服务器并转换成flv格式实现在线播放功能1.docx

    在这个文档中,我们关注的是如何将用户上传的视频文件转换为FLV(Flash Video)格式,以便在网页上通过Flash Player进行在线播放。以下是相关知识点的详细说明: 1. **FLV格式**:FLV是Adobe Flash平台广泛使用的...

    网页在线flv转换代码

    这些SWF文件可能包含了视频播放器的界面和控制逻辑,使得用户可以在网页上直接预览和播放转换后的视频。 六、使用帮助 使用帮助.txt文件可能提供了如何使用这个在线转换服务的指南,包括上传文件、选择转换格式、...

    asp.net中将各种视频文件转换成.flv格式

    在ASP.NET环境中,将各种视频文件转换为FLV格式是一项常见的需求,特别是在处理在线视频流或构建媒体库时。此过程涉及多个步骤和技术组件,包括使用特定的编码工具(如FFmpeg和Mencoder)、配置应用设置、以及实现...

    视频Flv格式的在线转换播放源码

    4. **from.gif**:这可能是一个图像文件,用于在页面上作为图示或按钮,引导用户进行视频上传或转换操作。 5. **media.sln** 和 **media.suo**:`.sln`是Visual Studio的解决方案文件,包含了项目和子项目的结构...

    ASP上传视频并转为FLV格式

    ASP上传视频并转换为FLV格式是一个常见的在线多媒体处理需求,尤其在早期的Web开发中。这个过程涉及多个步骤和技术,主要包括文件上传、服务器端处理和视频格式转换。以下是关于这个主题的详细解释: 1. **文件上传...

    1G大文件视频上传,多种格式转换成flv,多图片截图 asp.net

    通过在服务器端运行FFmpeg命令,我们可以将用户上传的rmvb, flv, swf, avi, mp4, mov, mpg等格式的视频转换为统一的flv格式,便于流媒体播放和存储优化。 3. **FLV格式**: FLV(Flash Video)是Adobe Flash ...

    ASP.NET-[其他类别]视频Flv格式的在线转换源码.zip

    这个压缩包“ASP.NET-[其他类别]视频Flv格式的在线转换源码.zip”包含了一个利用ASP.NET技术实现的视频文件转换系统,特别是将视频文件转换为FLV(Flash Video)格式的源代码。 FLV是Adobe Flash Player支持的一种...

    flv视频网站制作资料

    4. **ffmpeg**: 开源多媒体框架,用于将各种格式的视频文件转换为FLV格式,同时支持视频缩略图的生成。 #### 三、数据库设计与初始化 在创建视频网站前,需要设计并初始化数据库。使用`mysqladmin create movies`...

    视频上传ffmpeg转码flv、截图播放点播播客解决方案代码

    在视频上传和点播播客场景中,FFmpeg 被广泛用于视频转码,即将上传的原始视频文件转换为适合在网络中流畅播放的格式,如 FLV。FLV 文件格式因其轻量级和良好的兼容性而常被用于在线视频流。 本解决方案中提到的91...

    FLV视频上传控件,ASP.NET空间

    在IT行业中,FLV视频上传控件是一种常见于ASP.NET空间的应用,主要用于视频分享网站,让用户能够方便地上传和转换视频文件为FLV格式。FLV(Flash Video)是Adobe Systems开发的一种流媒体格式,广泛应用于网络视频...

    flv视频网站制作资料.pdf

    3. **ffmpeg**:这是一个开源工具,能够将用户上传的各种视频格式转换为适合在网络流式传输的Flash Video(FLV)格式。同时,它还能生成视频的缩略图,方便在网站上展示预览。 4. **Flex**:Adobe Flex是一款用于...

    ASP.NET源码——视频Flv格式的在线转换源码.zip

    此源码包"ASP.NET源码——视频Flv格式的在线转换源码.zip"显然包含了用于处理视频文件,特别是将视频转换为FLV(Flash Video)格式的代码。FLV是Adobe Flash Player支持的一种流行格式,常用于在线流媒体视频。 ...

    flv视频播放器asp后台添加版

    本项目"flv视频播放器asp后台添加版"显然是一个集成的解决方案,允许用户在网页上播放FLV格式的视频,并通过ASP后台进行管理和控制。以下将详细讲解FLV视频、ASP视频播放器以及如何在网页中插入视频播放器的相关知识...

    [其他类别]视频Flv格式的在线转换源码_media2flv(ASP.NET源码).rar

    【标题】中的“[其他类别]视频Flv格式的在线转换源码_media2flv(ASP.NET源码).rar”表明这是一个与视频处理相关的软件开发资源,具体来说是用于将不同格式的视频转换为FLV格式的在线转换源代码。这种源码是基于ASP...

    在线播放FLV格式的源代码

    首先,FLV(Flash Video)是一种流媒体格式,常用于互联网上的视频播放。Adobe Flash Player是播放FLV文件的常用工具,但随着HTML5的发展,现代浏览器更多地支持HTML5的video标签来播放视频,无需Flash插件。然而,...

    .net 视频编码转换.docx

    在视频上传成功后,我们需要将视频文件转换为 FLV 格式,使用 mencoder 和 ffmpeg 工具可以实现视频格式转换。首先,我们需要在配置文件中配置工具文件夹的路径: ```xml &lt;!-- 转换后文件路径--&gt; ``` ...

Global site tag (gtag.js) - Google Analytics