Java将视频转换为flash - binbin_520的专栏 - CSDN博客
来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:15:30
Java将视频转换为flash收藏
最近的工作是做一个素材管理的系统,其中有个要求做视频预览,将用户上传的视频转换并在网页上预览。在网页上看视频,现在大多数视频网站都是采用flv流媒体文件,用flash做的播放器播放,我们也采用了这种方式。流程大概主要:用户上传文件->后台转换文件成flv格式->flv播放器调用flv文件。
转换视频、音频文件到flv格式可以使用mencoder或者ffmpeg,我们采用了mencoder,在linux上的安装参考这里,安装结束后记的设置环境变量:exportLD_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 -oacmp3lame -lameopts abr:br=56 -ovc lavc -lavcoptsvcodec=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。
有兴趣的老大们可以考虑自己搭个“土豆网”,说不定哪天拿了风投.....浮云
====================================================
视频网用户上传了视频有很多种格式如rm,wmv,mpg,avi等等
如何把这些格式的视频统一转换成flash 文件swf
用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 不支持 所有平台
解决方案三:
...........
大家 还有什么想法啊,欢迎贴出来
最近的工作是做一个素材管理的系统,其中有个要求做视频预览,将用户上传的视频转换并在网页上预览。在网页上看视频,现在大多数视频网站都是采用flv流媒体文件,用flash做的播放器播放,我们也采用了这种方式。流程大概主要:用户上传文件->后台转换文件成flv格式->flv播放器调用flv文件。
转换视频、音频文件到flv格式可以使用mencoder或者ffmpeg,我们采用了mencoder,在linux上的安装参考这里,安装结束后记的设置环境变量:exportLD_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 -oacmp3lame -lameopts abr:br=56 -ovc lavc -lavcoptsvcodec=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。
有兴趣的老大们可以考虑自己搭个“土豆网”,说不定哪天拿了风投.....浮云
====================================================
视频网用户上传了视频有很多种格式如rm,wmv,mpg,avi等等
如何把这些格式的视频统一转换成flash 文件swf
用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 不支持 所有平台
解决方案三:
...........
大家 还有什么想法啊,欢迎贴出来
Java将视频转换为flash - binbin_520的专栏 - CSDN博客
java线程状态管理 - SecretValley的专栏 - CSDN博客
Java同步技术 (一) - IanGao的专栏 - CSDN博客
baozhengw的专栏 - CSDN博客
详细解析Java中抽象类和接口的区别 - fpy_061625的专栏 - CSDN博客
【转载】一个牛人给java初学者的建议 - haobo920的专栏 - CSDN博客
【转载】一个牛人给java初学者的建议 - haobo920的专栏 - CSDN博客
Java内部类(Inner Class)详解 - zhengsj的专栏 - CSDN博客
运用VC或Java对Office进行编程操作 - etre的专栏 - CSDN博客
用C++写Java Style程序 - 薛笛的专栏 - CSDN博客
将SWF格式的Flash动画转换为GIF动画图片
对国内几大视频网站http请求分析 - monkisgod的专栏 - CSDN博客
AGPS简介 - kv110的专栏 - CSDN博客
OpenMAX简介 - shenbin1430的专栏 - CSDN博客
Android flinger - simmer_ken的专栏 - CSDN博客
windows 命令 - orangeman1982112的专栏 - CSDN博客
JNDI概述 - tanghongru1983的专栏 - CSDN博客
指针 - syhhl007的专栏 - CSDN博客
变量命名 - yszwn的专栏 - CSDN博客
什么是PLL - JasonCao的专栏 - CSDN博客
VC积累 - cherryt的专栏 - CSDN博客
fms技术 - wanglilin2000的专栏 - CSDN博客
关于numeric_limits - qianlong88的专栏 - CSDN博客
gcc - sportmanmanman44的专栏 - CSDN博客