有一次碰到视频通过接口传输的功能。需要将用户上传的视频进行压缩到限制大小内。才给到其他系统。java原生的视频压缩jdk压缩后出现了旋转。这里提供一种ffmpeg-git-amd64-static的压缩方法。
首先是代码。注意调用的方法是pressVideo()。通过执行linux上的shell命令进行压缩的
package com.sunrise.wcs.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.log4j.Logger;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.MultimediaInfo;
import it.sauronsoftware.jave.VideoInfo;
import it.sauronsoftware.jave.VideoSize;
public class VideoProcessing {
private static final Logger logger = Logger.getLogger(VideoProcessing.class);
private static String UTILPATH = "G:\\ffmpeg-20190820-74e6800-win64-static\\bin\\ffmpeg.exe";//widows系统下本地调试
private static String HOMEPATH = "/wcsapp/wcs_upload/images/20190821/20190821180209229409.mp4";
public static void main(String[] args) {
String sourcePath = "G:/VID_20190820_180717.mp4";
String targetPath = "G:/VID_20190820_180717Zip.mp4";
boolean retmsg = ffmpeg2MP4(sourcePath, targetPath);
System.out.println(retmsg);
}
/**
*
*
* @param sourcePath
* @return
*/
public s