当前位置:   article > 正文

Java将视频文件avi/rmvb等格式转换成mp4_java avi视频转码mp4

java avi视频转码mp4

目前已验证支持avi,flv,mpg,mpeg,mov,rmvb,asf,ogv等视频文件格式转成mp4,至于mp4转成其他类型,目前只验证了一种mp4->mov, 感兴趣的小伙伴可以验证下mp4转成其他类型。

首先引入maven依赖

  1. <dependency>
  2. <groupId>org.bytedeco</groupId>
  3. <artifactId>javacv</artifactId>
  4. <version>1.5.10</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.bytedeco</groupId>
  8. <artifactId>javacv-platform</artifactId>
  9. <version>1.5.10</version>
  10. </dependency>

工具类和main方法:

  1. package com.person.ai.config;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.bytedeco.javacv.*;
  4. @Slf4j
  5. public class CovertVideoUtils {
  6. /**
  7. *
  8. * @param inputPath 源文件
  9. * @param outputPath 目标文件
  10. * @param format 生成目标文件的格式
  11. * @throws FrameRecorder.Exception 异常类
  12. */
  13. public static void convert(String inputPath, String outputPath, String format) throws FrameRecorder.Exception {
  14. try {
  15. FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(inputPath);
  16. frameGrabber.start();
  17. FFmpegFrameRecorder frameRecorder = new FFmpegFrameRecorder(outputPath, frameGrabber.getImageWidth(), frameGrabber.getImageHeight(), frameGrabber.getAudioChannels());
  18. frameRecorder.setFormat(format);
  19. frameRecorder.setFrameRate(frameGrabber.getFrameRate());
  20. frameRecorder.setSampleRate(frameGrabber.getSampleRate());
  21. frameRecorder.start();
  22. Frame frame;
  23. while ((frame = frameGrabber.grabFrame()) != null) {
  24. frameRecorder.record(frame);
  25. }
  26. frameRecorder.stop();
  27. frameGrabber.stop();
  28. }
  29. catch (FrameGrabber.Exception e) {
  30. log.error("convert failed", e);
  31. }
  32. }
  33. public static void main(String[] args) throws FrameRecorder.Exception {
  34. CovertVideoUtils.convert("E:/video/output4.mp4", "E:/video/output6.mov", "mov");
  35. }
  36. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/650498
推荐阅读
相关标签
  

闽ICP备14008679号