MediaConvertUtils.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.ruoyi.common.utils.ffmpeg;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class MediaConvertUtils {
  5. public static String exchangeToMp4(String ffmpegPath, String upFilePath, String codcFilePath) throws Exception {
  6. // 创建List集合来保存转换视频文件为flv格式的命令
  7. List<String> convert = new ArrayList<String>();
  8. convert.add(ffmpegPath); // 添加转换工具路径
  9. convert.add("-y"); // 该参数指定将覆盖已存在的文件
  10. convert.add("-i");
  11. convert.add(upFilePath);
  12. convert.add("-c:v");
  13. convert.add("libx264");
  14. convert.add("-c:a");
  15. convert.add("aac");
  16. convert.add("-strict");
  17. convert.add("-2");
  18. convert.add("-pix_fmt");
  19. convert.add("yuv420p");
  20. convert.add("-movflags");
  21. convert.add("faststart");
  22. //convert.add("-vf"); // 添加水印
  23. //convert.add("movie=watermark.gif[wm];[in][wm]overlay=20:20[out]");
  24. convert.add(codcFilePath);
  25. try {
  26. Process videoProcess = new ProcessBuilder(convert).redirectErrorStream(true).start();
  27. new PrintStream(videoProcess.getInputStream()).start();
  28. //videoProcess.waitFor(); // 加上这句,系统会等待转换完成。不加,就会在服务器后台自行转换。
  29. } catch (Exception e) {
  30. System.out.println(e);
  31. e.printStackTrace();
  32. }
  33. return codcFilePath;
  34. }
  35. }