J2EE中使用MediaInfo库获取视频信息
来源:互联网 发布:windows官网下载镜像 编辑:程序博客网 时间:2024/05/17 02:14
MediaInfo 用来分析视频和音频文件的编码和内容信息,是一款是自由软件 (免费使用、免费获得源代码)。
我在J2EE项目软件中集成了它的DLL,很好用。
下面简单记录一下它的使用方法。
(系统开发平台是MyEclipse)
1.需要加入JNA库。加入项目的 Build Path 后就可以使用Java调用DLL了。
2.需要MediaInfo的Dll。可以放到“C:\Windows\System32”里面。
3.需要一个名为MediaInfo的类(在MediaInfoDLL.JNA.java中)。
4.加入以下代码(这是个片段)试一下:
String To_Display = "\r\n\r\nOpen\r\n";MediaInfo MI = new MediaInfo();if (MI.Open("test.flv")>0)To_Display+="is OK\r\n";elseTo_Display+="has a problem\r\n";To_Display += "\r\n\r\nInform with Complete=false\r\n";MI.Option("Complete", "");To_Display += MI.Inform();MI.Close();System.out.println(To_Display);如果没问题,可以打印出test.flv的完整信息。
实际Struts2 + Spring + Hibernate项目中可以按照如下方式使用:
(一个实际的Action)
package action.video;import javax.servlet.ServletContext;import org.apache.struts2.ServletActionContext;import service.BaseService;import bean.Video;import util.MediaInfo;import com.opensymphony.xwork2.ActionSupport;/** * @author 雷霄骅 * Action */public class VideoReadByID extends ActionSupport {private int videoid;private BaseService baseService;private String original_videoinfo;private String convert_videoinfo;private Video video;public int getVideoid() {return videoid;}public void setVideoid(int videoid) {this.videoid = videoid;}public BaseService getBaseService() {return baseService;}public void setBaseService(BaseService baseService) {this.baseService = baseService;}public Video getVideo() {return video;}public void setVideo(Video video) {this.video = video;}public String getOriginal_videoinfo() {return original_videoinfo;}public void setOriginal_videoinfo(String original_videoinfo) {this.original_videoinfo = original_videoinfo;}public String getConvert_videoinfo() {return convert_videoinfo;}public void setConvert_videoinfo(String convert_videoinfo) {this.convert_videoinfo = convert_videoinfo;}public String execute(){try{video=(Video) baseService.ReadByID("Video", videoid);ServletContext servletContext = ServletActionContext.getServletContext();String realfilePath=servletContext.getRealPath("/")+video.getPath();String realfileoriginalPath=servletContext.getRealPath("/")+video.getTemppath();//MediaInfo-------------------MediaInfo MI = new MediaInfo();MI.Option("Output", "HTML");original_videoinfo = ""; if (MI.Open(realfileoriginalPath)>0){ MI.Option("Complete", "");original_videoinfo+= MI.Inform(); } else{ original_videoinfo+="媒体信息检测失败\r\n"; }//----------------------------convert_videoinfo= "";if (MI.Open(realfilePath)>0){MI.Option("Complete", "");convert_videoinfo+= MI.Inform();} else{ convert_videoinfo+="媒体信息检测失败\r\n"; }//----------------------------//System.out.println(original_videoinfo);//System.out.println(convert_videoinfo);return SUCCESS;}catch(Exception ex){ex.printStackTrace();return ERROR;}}}
最终original_videoinfo 和convert_videoinfo中都得到了相应媒体的信息,事实上分别是转码前和转码后视频文件的信息。
在J2EE项目中应该注意:MI.Option("Output", "HTML");这句一定要加,这样才能保证original_videoinfo 和convert_videoinfo中的字符串是HTML格式的(以<table>的形式输出)。
- J2EE中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- MediaInfo库获取视频信息
- MediaInfo库的使用
- MediaInfo.dll获取音视频时间戳
- 用MediaInfo 获取 视频文件的信息
- C#使用MediaInfo查看媒体信息
- php-mediainfo信息解析
- 使用mediainfo库取得媒体文件的tag
- 使用FFmpeg接口获取视频信息
- PHP使用FFmpeg获取视频信息
- MediaInfo用来分析视频和音频文件的编码和内容信息的超好用工具
- 视频学习笔记之 MediaInfo
- mediainfo的使用
- MediaInfo获取视频文件时长
- Java获取视频信息
- Shell32获取视频信息
- SGU 101 Domino 欧拉通路/回路
- PS STAT之R、S、D、T、Z、X
- UVa 591 - Box of Bricks
- Candy Distribution
- HDU 3829 Cat VS Dog(二分图,4级)
- J2EE中使用MediaInfo库获取视频信息
- ListView的下拉刷新,点击加载更多
- 视频编解码学习之一:理论基础
- 标准C++中的string类的用法总结
- oracle 表同步
- 【转载】从图谱搜索看搜索技术的发展趋势
- Sizeof与Strlen的区别与联系
- 初次使用gdb调试器,出现的No symbol table is loaded. Use the "file" command.问题
- uuid