J2EE中使用MediaInfo库获取视频信息
2013-10-11 21:50
99 查看
MediaInfo 用来分析视频和音频文件的编码和内容信息,是一款是自由软件 (免费使用、免费获得源代码)。
我在J2EE项目软件中集成了它的DLL,很好用。
下面简单记录一下它的使用方法。
(系统开发平台是MyEclipse)
1.需要加入JNA库。加入项目的 Build Path 后就可以使用Java调用DLL了。
2.需要MediaInfo的Dll。可以放到“C:\Windows\System32”里面。
3.需要一个名为MediaInfo的类(在MediaInfoDLL.JNA.java中)。
4.加入以下代码(这是个片段)试一下:
实际Struts2 + Spring + Hibernate项目中可以按照如下方式使用:
(一个实际的Action)
最终original_videoinfo 和convert_videoinfo中都得到了相应媒体的信息,事实上分别是转码前和转码后视频文件的信息。
在J2EE项目中应该注意:MI.Option("Output", "HTML");这句一定要加,这样才能保证original_videoinfo 和convert_videoinfo中的字符串是HTML格式的(以<table>的形式输出)。
我在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"; else To_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库获取视频信息
- J2EE中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- C++中使用MediaInfo库获取视频信息
- PHP使用FFmpeg获取视频播放总时长与码率等信息
- php使用ffmpeg获取视频信息并截图的实现方法
- 在托管应用程序中使用 DirectShow 组件获取视频文件截图和 FourCC 信息
- asp.net 使用ffmpeg.exe获取视频信息并截图方法类
- PHP使用FFmpeg获取视频播放总时长与码率等信息
- PHP使用FFmpeg获取视频信息
- php使用ffmpeg获取视频信息并截图的实现方法
- 使用FFmpeg接口获取视频信息
- MediaInfo库获取视频信息
- 使用CreateToolhelp32Snapshot获取指定进程详细信息的方法
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- C#获取 Flv视频文件播放时间长度等信息
- 使用SharedPreferences保存和获取信息
- 在SQL Server 中使用EVENTDATA()函数来获取DDL 触发器信息