`
Jatula
  • 浏览: 276648 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA獲取視頻文件的播放長度

阅读更多

       記得以前在“回答問題”那塊問了一個問題,高分求教,但是45分還是未能送出去;

現在我來寫一個解決的辦法,也給大家做個分享;

      在百度上查找一下,大多是什么JMF,什么JMF第三方插件,读取文件头几个字节,然后解决,ffmpeg和Mencoder,可以一句话说,搞得晕头晕脑的;

 

解决办法:

      调用DLL文件,只要找到一个可以比较好解析播放时长的DLL,然后JNI调用,CPP或者Delphi都好,只要能实现就oK了,DLL放在BIN目录;

 

PS:问题解决;

 

public class CtrlFtpFile {
	//读取Dll
	static {
		System.loadLibrary("GetPlayTime");
	}

	public native String getMediaTime(String arg);

	public static void main(String[] args) {

		CtrlFtpFile hw = new CtrlFtpFile();
//		System.out.println(hw.getMediaTime("D:\\TDDOWNLOAD\\小强.mp3"));
		System.out.println(hw.getMediaTime("file:///G:/tomcat/apache-tomcat-6.0.18/webapps/mbs/ftp/0/real/B1224487037153.mpeg"));
		//file:///G:\tomcat\apache-tomcat-6.0.18\webapps\mbs\ftp\0/real/B1224487037153.mpeg
		
	}
}

 

 

 调用方法:String.valueOf(ftpFile.getPlaytime());因为得到是一个秒数字符串;

 

 结束!这里的DLL是Delphic写的!

11
7
分享到:
评论
14 楼 richardri 2012-11-05  
结果是0怎么解决?支持mov、mp4、3gp吗?
13 楼 zhujia130 2012-08-06  
xiaoyaodandan 写道
结果是0.。。。。。

你给的路径不对,我也出现过...
12 楼 xiaoyaodandan 2012-07-10  
结果是0.。。。。。
11 楼 zll405361679 2011-11-29  
还是报错啊,楼主就解啊。。。。
10 楼 chinaluopiao 2011-11-08  
确实能够获取,但是能不能在linux下运行呢!!  而且ddl文件能不能换个位置啊! 一掉要放在window/sysem32下面??
9 楼 Jatula 2011-08-15  
bruceyu 写道
首先感谢楼主所分享的好方法,但是还有一些需要补充的地方,如下:

楼主所写的这个类一定要放在 “com.avedia.transfers.struts.action”的包路径中,否则就会抛出“UnsatisfiedLinkError”异常,这是由于jni调用dll中的方法名所决定的。



正解~~~
8 楼 fei1502816 2011-07-11  
额 我给大家解说一下 把那两个dll文件放在系统文件windows/system32目录下 就OK了
7 楼 fei1502816 2011-07-11  
你是不是出车祸了?
6 楼 Caedmon 2011-05-09  
哥们敬业点,好多人等着解答呢。。
5 楼 bruceyu 2010-09-23  
首先感谢楼主所分享的好方法,但是还有一些需要补充的地方,如下:

楼主所写的这个类一定要放在 “com.avedia.transfers.struts.action”的包路径中,否则就会抛出“UnsatisfiedLinkError”异常,这是由于jni调用dll中的方法名所决定的。
4 楼 wyl8491797 2010-08-24  
168_ccxx 写道
不太懂java dll调用,按照楼主给的方法把dll扔到jdk的bin目录了,然后运行你给的CtrlFtpFile类,报UnsatisfiedLinkError异常啊~

我也碰到这个问题的,希望楼主出来给予解答呀!谢谢了
3 楼 168_ccxx 2009-11-23  
不太懂java dll调用,按照楼主给的方法把dll扔到jdk的bin目录了,然后运行你给的CtrlFtpFile类,报UnsatisfiedLinkError异常啊~
2 楼 Jatula 2009-01-19  
shexh 写道

里的DLL是                    

调用的DLL
1 楼 shexh 2009-01-19  
里的DLL是                    

相关推荐

    java获取视频长度

    标题"java获取视频长度"和标签"video"暗示我们要关注的是处理视频文件的Java方法。JAVE是一个强大的Java库,它允许我们对音频和视频进行转码、提取元数据等操作。在这个场景下,我们可以利用JAVE库来获取视频的时长...

    Java 获取视频时长、格式、大小需要的jar

    总结,`jave-1.0.2`库为Java开发者提供了一个方便的工具,用于获取视频文件的关键信息,包括时长、格式和大小。通过适当的代码实现,可以轻松地将这些功能集成到Java应用中,从而提升多媒体处理的效率和灵活性。

    javaffmpeg获取视频长度

    JavaFFmpeg是一个强大的Java库,它是FFmpeg命令行工具的Java接口,允许开发者在Java应用程序中处理音频和视频文件。这个案例聚焦于如何利用JavaFFmpeg来获取视频的长度,这是多媒体处理中一个常见的需求。FFmpeg是一...

    JAVA获取本地视频或者网络URL的时长.zip

    以下是使用ffmpeg4java获取本地视频时长的步骤: 1. 添加ffmpeg4java库到项目中,可以通过Maven或Gradle引入依赖。 2. 初始化FFmpeg工具: ```java FFmpeg ffmpeg = FFmpeg.getInstance(); ``` 3. 创建一个File对象...

    MultipartFile 视频获取时长(时分秒) VideoUtil.java

    本地生成file文件 MultipartFile转为file,获取时长(毫秒),换算毫秒为时分秒 删除本地的file文件

    java使用OpenCV从视频文件中获取帧

    "java使用OpenCV从视频文件中获取帧" Java使用OpenCV从视频文件中获取帧是指使用Java语言和OpenCV库从视频文件中提取图像帧的过程。本文将详细介绍如何使用Java和OpenCV从视频文件中获取帧,并提供了具体的代码实例...

    JAVA读取视频时间

    使用Xuggler,你可以直接访问Container类来获取视频文件的元数据,包括时间信息: ```java IContainer container = IContainer.make(); if (container.open("path_to_video", IContainerFormat.make()) ) { ...

    java源码 java 获取文件md5值(用于检测文件完整性) 2018127

    在Java编程中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要表示,通常用于验证文件的完整性和一致性。本示例代码是关于如何使用Java来计算文件的MD5哈希...

    Java获取视频时间JAR包

    在IT行业中,尤其是在多媒体处理和文件操作领域,有时我们需要获取视频文件的时间长度,例如为了预览、剪辑或创建播放列表。"Java获取视频时间JAR包"正是为了解决这个问题而设计的,它提供了一个Java库,允许开发者...

    Java计算文件MD5值(支持大文件)

    * 获取一个文件的md5值(可处理大文件) * @return md5 value */ public static String getMD5(File file) { FileInputStream fileInputStream = null; try { MessageDigest MD5 = MessageDigest....

    jave视频长度获取

    jave视频长度获取工具,支持avi/mp4等几乎所有视频文件

    视频时长和截取视频封面(Java)

    截取视频封面则需要获取视频的关键帧,关键帧是能够独立解码的帧,通常用作视频的预览图。同样,我们可以利用Xuggler或FFmpeg库来实现。以下是一个基本示例,它会从视频的第一帧提取封面: ```java import ...

    java 二进制文件的读写操作

    1. **创建File对象**:首先通过指定文件路径创建了一个`File`对象`fi`,这里指定了一个rmvb格式的视频文件。 2. **创建输入流**:接着使用`FileInputStream`创建了一个输入流`fis`,指向了前面创建的`File`对象。 3....

    Java通过调用FFMPEG获取视频时长

    Java通过调用FFmpeg获取视频时长是利用Java程序调用外部的FFmpeg工具,以执行获取视频文件时长的任务。FFmpeg是一个功能强大的音视频处理工具集,支持各种音视频格式的编解码、转码、录制以及流式传输。它包含了...

    用java实现任意文件分割

    5. **文件命名**:在Java中,我们可以使用`File`类的`getName()`方法获取原文件名,并结合分割编号为每个分割块创建独特的文件名。 6. **文件合并**:合并过程则与分割相反,读取每个分割文件,按照元数据中的顺序...

    ffmpeg获取视频时长

    根据提供的文件信息,我们可以深入探讨如何使用FFmpeg来获取视频的关键属性,如视频时长、码率、编码格式、分辨率以及音频的相关信息,并且通过Java编程语言实现这一过程。 ### FFmpeg简介 FFmpeg是一个非常强大的...

    java完整性校验解决方案

    5. 读取完文件后,从 `DigestInputStream` 获取最终的哈希值,通常是以字节数组的形式。 6. 将字节数组转换为16进制字符串,便于与发送方提供的指纹比较。 下面是一个简单的Java代码示例: ```java import java.io...

    java实现从ts流中提取I帧数据的方法

    在一些视频服务中,如VOD推流的快进、快退中,经常需要快速从ts节目流中找出I帧(I-frame)来,以便推流服务器可以推送只包含视频画面而没有声音的ts数据到终端,而终端并不需要做任何特殊处理,即可实现快进/快退的...

    minio文件储存服务

    minio 兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言。Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在...

Global site tag (gtag.js) - Google Analytics