下载并安装
# 下载
wget http://www.ffmpeg.org/releases/ffmpeg-4.0.tar.gz
# 解压安装
tar -zxvf ffmpeg-4.0.tar.gz
cd ffmpeg-4.0
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
进行配置
安装完成之后还需要进行一些配置才可以正常使用
1.)编辑动态库配置vi /etc/ld.so.conf
加入下面两行内容,安装时也可能自动加入,已有的就可以忽略
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib
保存退出后执行下面命令刷新
ldconfig -v
2.)配置ffmpeg的环境变量vi /etc/profile
在文件尾部追加
export FFMPEG=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
3.)检查安装是否安装OKffmpeg -version
JAVA代码
/**
* 视频顺时旋转90°
* @param filePath
*/
private void videoRotate(String filePath) throws InterruptedException, IOException, TimeoutException {
List<String> convert = new ArrayList();
convert.add("ffmpeg");
convert.add("-i");
convert.add(filePath);
convert.add("-metadata:s:v");
convert.add("rotate=270");
convert.add("-codec");
convert.add("copy");
convert.add("-y");
convert.add(filePath + ".mp4");
ProcessUtils.executeCommand(conve
File oldFile = new File(filePath);
oldFile.delete();
File video = new File(filePath + ".mp4");
video.renameTo(oldFile);rt);
}
//设置超时
public class ProcessUtils {
public static int executeCommand(final List<String> command) throws InterruptedException, TimeoutException, IOException {
ProcessBuilder builder = new ProcessBuilder();
builder.command(command);
builder.redirectErrorStream(true);
Process process = builder.start();
Worker worker = new Worker(process);
worker.start();
try {
worker.join(5000);
if (worker.exit != null){
return worker.exit;
} else{
throw new TimeoutException();
}
} catch (InterruptedException ex) {
worker.interrupt();
Thread.currentThread().interrupt();
throw ex;
} finally {
process.destroy();
}
}
private static class Worker extends Thread {
private final Process process;
private Integer exit;
private Worker(Process process) {
this.process = process;
}
@Override
public void run() {
try {
exit = process.waitFor();
} catch (InterruptedException ignore) {
return;
}
}
}
}