`

获取视频播放总时长

    博客分类:
  • java
 
阅读更多
来源地址:http://bbs.csdn.net/topics/340267510


/**
* 获取视频播放总时长
*
* @param fileName
*            视频名称
* @param dir
*            存放视频的目录
* @return
* @throws IOException
*/
public static long getVideoPlayTime(String videoName, File dir) throws IOException{
    Process p = null;
    if (isWindowsSystem()) {
        p = Runtime.getRuntime().exec(
                "cmd /c timelength.bat " + "\"" + dir.getPath() + "/" + videoName
                        + ".wmv\"");
    } else {
        String cmd = "sh " + getMplayerBinPath() + "/timelength.sh " + dir.getPath()+ "/" + videoName + ".wmv";
        p = Runtime.getRuntime().exec(cmd);
    }
    
    InputStream is = p.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    while ((line = br.readLine()) != null) {
        if(line != null){
            if(line.startsWith("ID_LENGTH")){
                String second = line.split("=")[1].trim();
                int pos = 0;
                if((pos = second.indexOf(".")) != -1){
                    // 去除小数点后的数字
                    return Long.parseLong(second.substring(0, pos));
                }else{
                    return Long.parseLong(second);
                }
            }
        }
        
    }
    
    try {
        br.close();
        isr.close();
        is.close();
    } catch (Exception e) {

    }
    return 0;
}

/**
* 格式化视频播放时长
* @param time
* @return
*/
public static String formatVideoTimeLength(long time) {
    long s = time % 60;
    long m = (time / 60) % 60;
    long h = time / 3600;
    return toTimeString(h) + ":" + toTimeString(m) + ":" + toTimeString(s);
}



















获取音频时长
import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

public class AudioLength {

    public static void main(String[] args) throws LineUnavailableException,
            UnsupportedAudioFileException, IOException {
        File file = new File("d:/test.wav");
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.getAudioInputStream(file);
        clip.open(ais);
        System.out.println( clip.getMicrosecondLength() / 1000000D + " s" );
    }
}
分享到:
评论

相关推荐

    获取视频播放时长

    System.out.println("视频时长: " + durationInSeconds + " 秒"); } }); while (mediaReader.readPacket() == null) ; } catch (Exception e) { e.printStackTrace(); } } } ``` 在这段代码中,我们首先...

    ios获取视频长度和当前播放时间

    2. **读取视频时长**:使用`AVURLAsset`的`duration`属性可以获取到视频的时长,该属性返回的是`CMTime`类型,包含了时间值和时间尺度两个部分。为了将时长转换为更常见的秒数,可以通过以下代码: ```objective-c ...

    C# WPF 通过FFmpeg 获取URL视频的播放时长

    FFmpeg解析视频,合并都可以,本项目只是用来获取视频长度,有点大材小用,但是目前能获取在线视频长度的资源的确是不多。VLC也是可以获取在线URL视频长度的,但是VLC有的在线视频也获取不到时长,这是补充方案,...

    C#通过LibVLCSharp得到视频文件的播放时长信息

    获取视频时长的关键部分通常在`Form1_Load`或者类似的事件处理器中,这里会创建一个`MediaPlayer`实例,并加载目标视频文件。然后,我们可以使用`MediaPlayer.Length`属性来获取视频的总时长,单位为毫秒。例如: `...

    ffmpeg获取视频时长

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

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

    总的来说,获取视频时长需要对Java的文件I/O、网络请求以及多媒体处理有一定的了解。使用合适的库可以简化这个过程,提高效率。在实际应用中,确保处理的健壮性和效率是非常重要的,例如处理网络延迟、错误重试等。

    C#获取视频时长,并且视频截图

    以下是一个简单的示例,展示如何使用C#获取视频时长: ```csharp using System.Diagnostics; public string GetVideoDuration(string videoPath) { var startInfo = new ProcessStartInfo(); startInfo.FileName...

    获取视频时长demo

    总的来说,通过FFmpeg获取视频时长涉及到了多媒体容器的理解、FFmpeg库的使用以及源代码的解析。FFmpeg 4.0提供了稳定和高效的接口,使得开发者能轻松处理这类任务。对于测试和验证,可以使用提供的`testFfmpeg`文件...

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

    1. **获取视频时长**: 视频时长通常存储在视频文件的元数据中,JAVE可以通过解析这些数据来获取。以下是一个简单的示例代码片段: ```java import it.sauronsoftware.jave.*; File source = new File("path_...

    PHP使用FFmpeg获取视频播放总时长与码率等信息

    首先匹配Duration字段来获取视频的总播放时长,然后将时长字符串转换成秒数。此外,还通过正则表达式匹配了视频的比特率、视频编码格式、视频分辨率、音频编码和采样率等信息。 每一种信息匹配成功后,都会存储到一...

    java中使用FFMpeg获取视频时长

    总的来说,Java中使用FFmpeg获取视频时长是一项实用的功能,通过FFmpeg的Java绑定库,我们可以轻松地在Java应用中集成这一特性。这不仅有助于提升用户体验,例如在上传视频时即时显示时长,还可以用于其他如视频处理...

    C# 通过VLC获取视频文件的时间长度信息

    调用vlc的dll,通过VLC的API来获取视频文件的时间长度信息,完整源代码,vs2008工程,可编译和测试通过。 需要注意的是使用的VLC 32位版本,C#工程必须设置生成32位软件。如果想用64位的,那么请使用64位的VLC版本的...

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

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

    Java获取播放文件的时长

    在Java编程中,获取播放文件(如音频或视频文件)的时长是一项常见的任务,尤其在多媒体应用或者处理媒体文件的场景下。本篇将详细讲解如何利用Java来获取不同类型的媒体文件的时长。 首先,Java本身并不直接提供...

    vue 获取视频时长的实例代码

    直接通过element-ui自带的上传组件结合js即可,代码如下: ... before-upload=beforeAvatarUpload> <button class=ce-button not-hover primary> <i class=ce-icon_upload></i> 重新上传

    Java利用FFmpeg解析视频,截图,获取视频播放时间

    3. **获取视频播放时间**:视频的总播放时间可以通过解析ffprobe输出的元数据获取。在JSON格式的输出中,找到"time_base"和"duration"字段,将它们转换为秒,就可以得到视频的总时长。 以下是一个简单的Java示例,...

    如何使用Java代码获取播放文件的时长

    在Java编程环境中,获取播放文件(如音频或视频文件)的时长是一项常见的任务,尤其在多媒体处理或者媒体播放器的开发中。本教程将详细讲解如何使用Java代码来实现这一功能,支持的文件格式包括mp3、mp4、f4v、3gp、...

    前端开发-js-视频播放时长实时记录

    自己写的一个用于记录视频播放时长的js,通过video标签的事件处理实现,文末有使用示例,引入即用。

    通过ffmpeg获取视频文件的视频时间长度信息

    通过ffmpeg获取视频文件的视频时间长度信息,可以获取各种保存在本地的视频文件中的视频时长信息。完整的C代码和codeblocks工程,没有使用ffmpeg命令,是调用的ffmpeg API方式实现的,在linux下可直接编译和测试通过...

Global site tag (gtag.js) - Google Analytics