java视频方案




解决方案一:

java调用ffmpeg执行视频转换

ffmpeg.exe能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)

对ffmpeg.exe无法解析的文件格式(wmv9,rm,rmvb等),

可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式;

mencoder.exe;drv43260.dll;pncrt.dll这3个文件是为文件格式(wmv9,rm,rmvb等)

转换为avi(ffmpeg能解析的)格式准备的;再把转换好的avi文件再用ffmpeg.exe转换成flv格式的视频文件。。。

缺点: 要装第三方东西,麻烦

解决方案二

用jmf。编程以前,你需要安装JMF。麻烦

而且 jmf 不支持 所有平台

mencoder可以直接将视频转为flv。

挺久没动笔写blog了,换了新工作比较忙是一个原因。最近的工作是做一个素材管理的系统,其中有个要求做视频预览,将用户上传的视频转换并在网页上预览。在网页上看视频,现在大多数视频网站都是采用flv流媒体文件,用flash做的播放器播放,我们也采用了这种方式。流程大概主要:用户上传文件 ->后台转换文件成flv格式->flv播放器调用flv文件。

转换视频、音频文件到flv格式可以使用mencoder或者ffmpeg,我们采用了mencoder,在linux上的安装参考这里,安装结束后记的设置环境变量:export LD_LIBRARY_PATH=/usr/local/lib:LD_LIBRARY_PATH

java调用的话就是通过Process:

Process process = runtime.exec(cmd);

mencoder转换视频音频成flv命令:

mencoder 源文件 -o 目标文件.flv -of lavf    -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=400:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=200:-3
-ofps 12 -srate 22050

取视频元信息命令(视频比特率、长宽等信息):

mplayer -identify 文件名 -ao null -vo null -frames 0

切割视频命令:

mencoder -ss 开始时间 -oac copy -ovc copy -endpos 终止时间 文件名 -o 目标文件名

操作flv文件(给视频打上信息、切割之类)可以采用flvtool2

需要注意的是通过java调用的话,一定要处理标准输出和标准错误输出,不然进程会挂在那结束不了,可以开个线程取处理。在网页播放的话,可以考虑用这个播放器,具体参数看它的说明。最后一个问题,IE6的flash控件需要激活,这个问题的解决可以采用swfobject.js

有兴趣的老大们可以考虑自己搭个“土豆网”,说不定哪天拿了风投.....浮云

时间: 2024-08-01 05:45:29

java视频方案的相关文章

阿甘学java视频--lesson5

 视频信息: 时长:56分钟34秒 作者:于盼盼 内容:java API的详细使用方法,java中常用的包:java.lang,java.awt,java.applet,java.net,java.io,java.util等. 视频地址:点击打开阿甘学java视频--lesson5 如果你想在学习java开发技术上少走弯路,欢迎一起加入我的课堂,这里有更多的java技术爱好者与你一起交流,一起成长. 于盼盼简介:专注Java软件开发.软件培训行业.2006年从事java软件开发工作,历任武汉

尚硅谷Java视频_jQuery 视频教程

更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com jQuery是优秀的JavaScript框架,能使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供Ajax交互.在世界前10000个访问最多的网站中,有超过 55 6在使用jQuery. 本Java视频教程循序渐进地对jQuery的各种选择器.函数和方法调用进行了详细的讲授,更配备了大量的实例. [视频简介] jQuery 是继 Prototype 之

500G JAVA视频网盘分享 (Jeecg社区)

http://blog.csdn.net/zhangdaiscott/article/details/18220411    csdn 排名400多名 500 G JAVA视频网盘分享(Jeecg社区) [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] Jeecg社区秉承开源宗旨,分享社区Java架构视频,更多资料点击: www.jeecg.org JAVA架构QQ技术群: 39596137 师徒架构班: 开源社区师徒架

阿甘学java视频--lesson7

 阿甘学javalesson7已更新,请大家欣赏. 视频信息: 时长:60分钟 作者:于盼盼 内容:变量和它的作用范围.成员变量和局部变量以及它们的初始化.值传递.java编程风格. 视频地址:点击打开阿甘学java视频--lesson7 如果你想在学习java开发技术上少走弯路,欢迎一起加入我的课堂,这里有更多的java技术爱好者与你一起交流,一起成长. 于盼盼简介:专注Java软件开发.软件培训行业.2006年从事java软件开发工作,历任武汉软帝科技信息有限责任公司软件开发工程师,河南

阿甘学java视频--lesson6

 新春佳节之际,在这里祝愿大家在新的一年里工作顺利,万事如意!lesson6已更新,请大家欣赏. 视频信息: 时长:128分钟 作者:于盼盼 内容:java文档化工具.java注释和分隔符.java的标识符.java中的51个关键字.java中的数据类型.数据转化.java对象的构造和初始化. 视频地址:点击打开阿甘学java视频--lesson6 如果你想在学习java开发技术上少走弯路,欢迎一起加入我的课堂,这里有更多的java技术爱好者与你一起交流,一起成长. 于盼盼简介:专注Java

Java代码优化方案 J2ME内存优化

Java代码优化方案 J2ME内存优化 从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) 如 : a不为空时 a=new object()//这句代码执行时将有两个对象存在于内存中 较好的写法是a=null; a=new object(); 不用的对象设置成null l 内存溢出通常发生在构造函数中,在构造函数中变量在要用时再new,用完之后置null 一次性加载所有图片很容易造成内存

分布式自增长ID(Twitter的 Snowflake JAVA实现方案 )

/**<p>项目名:</p>  * <p>包名: com.zdb.module.test</p>  * <p>文件名:IdWorker.java</p>  * <p>版本信息:</p>  * <p>日期:2015-5-23-下午1:17:49</p>  * Copyright (c) 2015singno公司-版权所有  */ package com.zdb.module.test; /

阿甘学java视频--lesson4

 视频信息: 时长:53分钟20秒         作者:于盼盼 内容:信息的隐藏,信息的封装,源文件的结构介绍,JDK中常用的包  视频地址:点击打开阿甘学java视频--lesson4        如果你想在学习java开发技术上少走弯路,欢迎一起加入我的课堂,这里有更多的java技术爱好者与你一起交流,一起成长.        于盼盼简介:专注Java软件开发.软件培训行业.2006年从事java软件开发工作,历任武汉软帝科技信息有限责任公司软件开发工程师,河南捷迅高级研发工程师,上

阿甘学java视频--lesson3

视频信息: 时长:50分钟34秒         作者:于盼盼 内容:java构造器的理解和使用,set,get方法的理解和使用,以及构造器和set.get方法在给对象赋值过程中的不同.  视频地址:点击打开阿甘学java视频--lesson3        如果你想在学习java开发技术上少走弯路,欢迎一起加入我的课堂,这里有更多的java技术爱好者与你一起交流,一起成长.        于盼盼简介:专注Java软件开发.软件培训行业.2006年从事java软件开发工作,历任武汉软帝科技信息有