Java根據視頻的URL地址,獲取視頻時長


參考大佬的博客https://www.cnblogs.com/yoyoyu/p/14255264.html,可以不用下載視頻而獲取視頻時長。

第一步:先引入Maven依賴

<dependencies>
   <!-- jave核心包 -->
    <dependency>
        <groupId>ws.schild</groupId>
        <artifactId>jave-core</artifactId>
        <version>2.4.6</version>
    </dependency>
    <!-- window64位 ffmpeg -->
    <dependency>
        <groupId>ws.schild</groupId>
        <artifactId>jave-native-win64</artifactId>
        <version>2.4.6</version>
    </dependency>
    <!-- linux64位 ffmpeg -->
    <dependency>
        <groupId>ws.schild</groupId>
        <artifactId>jave-native-linux64</artifactId>
        <version>2.4.6</version>
    </dependency>

</dependencies>

第二步:在業務層main.java下新建包ws.schild.jave(目的是和jave的jar包路徑一致,這樣就可以使用jar包中非public類,方便改造。)

第三步:復制jave中的MultimediaObject類在新建的包中重名名為FfmpegFileInfo,需要修改三個地方

1.注釋掉88行變量Macher m;

2.注釋掉126行的String token;

 

 3.修改getInfo()方法為

public MultimediaInfo getInfo(String url) throws InputFormatException, EncoderException {
        FFMPEGExecutor ffmpeg = this.locator.createExecutor();
        ffmpeg.addArgument("-i");
        ffmpeg.addArgument(url);
        try {
            ffmpeg.execute();
        } catch (IOException var8) {
            throw new EncoderException(var8);
        }

        MultimediaInfo var3;
        try {
            RBufferedReader reader = new RBufferedReader(new InputStreamReader(ffmpeg.getErrorStream()));
            var3 = this.parseMultimediaInfo(this.inputFile, reader);
        } finally {
            ffmpeg.destroy();
        }
        return var3;

}

第四步:使用

/**
     * 獲取URL地址獲取視頻文件長度
     *
     * @param filePath 文件路徑
     * @return 視頻長度(單位:秒)
     */
    private long getURLVideoSecond(String filePath) {
        File file = new File(filePath);
        try {
            FfmpegFileInfo ffmpegFileInfo = new FfmpegFileInfo(file);
            ws.schild.jave.MultimediaInfo info = ffmpegFileInfo.getInfo(filePath);
            return info.getDuration() / 1000;
        } catch (Exception e) {
            log.error("獲取URL視頻文件時長失敗", e);
            return 0;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM