欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javacv視頻抽幀的實現(xiàn)過程詳解(附代碼)

 更新時間:2019年07月11日 10:16:26   作者:行走在江湖  
這篇文章主要介紹了javacv視頻抽幀的實現(xiàn)過程詳解(附代碼),視頻抽幀可以做一些處理,比如水印,去水印等操作,然后再合成視頻,需要的朋友可以參考下

視頻抽幀可以做一些處理,比如水印,去水印等操作,然后再合成視頻。下面直接上代碼:

引入maven步驟看javacv去水印的文章

這里直接上關(guān)鍵操作:

  /**
   * 視頻文件指定時間段的幀截取
   * @param file
   * @param start
   * @param end
   */
  public static List<File> videoIntercept(File file, Integer start, Integer end) {
    Frame frame = null;
    List<File> files = Lists.newArrayList();
    FFmpegFrameGrabber fFmpegFrameGrabber = new FFmpegFrameGrabber(file);
    String filePath = "D://video//images//";
    String fileTargetName = "movie";
    try {
      fFmpegFrameGrabber.start();
      int ftp = fFmpegFrameGrabber.getLengthInFrames();
      System.out.println("開始視頻提取幀");
      for (int i=0 ; i < ftp ; i++){
        if( i >= start && i <= end){
          frame = fFmpegFrameGrabber.grabImage();
          doExecuteFrame(frame, filePath, fileTargetName, i ,files);
        }
      }
      System.out.println("============運行結(jié)束============");
      fFmpegFrameGrabber.stop();
    } catch (IOException E) {
//      Loggers.ERROR.error("視頻抽幀異常", e);
    }
    return files;
  }

  public static void doExecuteFrame(Frame frame, String targetFilePath, String targetFileName, int index ,List<File> files) {
    if ( frame == null || frame.image == null) {
      return;
    }
    Java2DFrameConverter converter = new Java2DFrameConverter();
    String imageMat = "jpg";
    String fileName = targetFilePath + targetFileName + "_" + index + "." + imageMat;
    BufferedImage bi = converter.getBufferedImage(frame);
    File output = new File(fileName);
    files.add(output);
    try{
      ImageIO.write(bi, imageMat, output);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    List<File> files = videoIntercept(new File("D://video//1553583033205-480p.mp4"), 10, 20);
    System.out.println(files);
  }

我們可以看到文件夾下抽取了視頻的第10,20之間的幀。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 什么是Java多線程,如何實現(xiàn)

    什么是Java多線程,如何實現(xiàn)

    這篇文章主要給大家介紹了關(guān)于實現(xiàn)Java多線程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧吧
    2021-11-11
  • 如何使用Spring AOP預(yù)處理Controller的參數(shù)

    如何使用Spring AOP預(yù)處理Controller的參數(shù)

    這篇文章主要介紹了如何使用Spring AOP預(yù)處理Controller的參數(shù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 如何修改FeginCilent定義的服務(wù)名到指定服務(wù)

    如何修改FeginCilent定義的服務(wù)名到指定服務(wù)

    這篇文章主要介紹了修改FeginCilent定義的服務(wù)名到指定服務(wù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot使用Redis中ZSetOperations實現(xiàn)博客訪問量

    Springboot使用Redis中ZSetOperations實現(xiàn)博客訪問量

    在日常的網(wǎng)站使用中,經(jīng)常會碰到頁面的訪問量,本文主要介紹了Springboot使用Redis中ZSetOperations實現(xiàn)博客訪問量,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Fluent Mybatis快速入門詳細教程

    Fluent Mybatis快速入門詳細教程

    由于FluentMybatis是基于mybatis上做封裝和擴展的,所以這里主要聊聊mybatis處理的方式,以及給出FluentMybatis的解放方案。對Fluent Mybatis入門相關(guān)知識感興趣的朋友一起看看吧
    2021-08-08
  • Java基礎(chǔ)之如何學(xué)好Java

    Java基礎(chǔ)之如何學(xué)好Java

    這篇文章已經(jīng)是有數(shù)年“網(wǎng)齡”的老文,不過在今天看來仍然經(jīng)典。如何學(xué)習(xí)java?本篇文章可以說也是面對編程初學(xué)者的一篇指導(dǎo)文章,其中對于如何學(xué)習(xí)Java的步驟的介紹,很多也適用于開發(fā)領(lǐng)域其他技能的學(xué)習(xí)。
    2014-10-10
  • Java concurrency之AtomicLongFieldUpdater原子類_動力節(jié)點Java學(xué)院整理

    Java concurrency之AtomicLongFieldUpdater原子類_動力節(jié)點Java學(xué)院整理

    AtomicLongFieldUpdater可以對指定"類的 'volatile long'類型的成員"進行原子更新。它是基于反射原理實現(xiàn)的。下面通過本文給大家分享Java concurrency之AtomicLongFieldUpdater原子類的相關(guān)知識,感興趣的朋友一起看看吧
    2017-06-06
  • mybatis簡單resultMap使用詳解

    mybatis簡單resultMap使用詳解

    resultMap是Mybatis最強大的元素,它可以將查詢到的復(fù)雜數(shù)據(jù)(比如查詢到幾個表中數(shù)據(jù))映射到一個結(jié)果集當(dāng)中。這篇文章主要介紹了mybatis簡單resultMap使用詳解的相關(guān)資料,需要的朋友可以參考下
    2021-04-04
  • Java接口測試之日志框架Logback的具體使用

    Java接口測試之日志框架Logback的具體使用

    本文主要介紹了Java接口測試之日志框架Logback的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java定長隊列的實現(xiàn)示例

    java定長隊列的實現(xiàn)示例

    定長隊列是一種有限容量的隊列,對于某些應(yīng)用場景非常有用,本文主要介紹了java定長隊列的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論