Java任意视频转MP4
在做视频上传功能时候,用户可能上传不同类型的视频文件,导致需要特定播放器才能播放,为了解决视频格式统一问题需要把视频转码一下 ,转换成统一的MP4格式。我们直接使用第三方工具 FFmpeg
FFmpeg介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案
总之使用就可完美 实现 视频转换。
环境准备
名称 内容说明
官网下载FFmpeg 官网:http://ffmpeg.org/download.html
项目导入依赖 可以去maven仓库搜索 https://mvnrepository.com/search?q=net.bramp.ffmpeg 各版本
这个0.7.0是最新版
<dependency>
<groupId>net.bramp.ffmpeg</groupId>
<artifactId>ffmpeg</artifactId>
<version>0.7.0</version>
</dependency>
下载FFmpeg
网站地址:http://ffmpeg.org/download.html
windows 版解压使用
将下载好的文件解压到一个常用的目录下
测试案例代码
import net.bramp.ffmpeg.FFmpeg;
import net.bramp.ffmpeg.FFmpegExecutor;
import net.bramp.ffmpeg.FFprobe;
import net.bramp.ffmpeg.builder.FFmpegBuilder;
/**
* @Date: 2023/9/22 18:58
* @Description: ffmpeg测试案例
*/
public class TestFFmpeg {
public static void main(String[] args) throws Exception {
System.err.println("---------开始执行----------------");
//将下载后并解压的 "ffmpeg.exe,ffprobe.exe" 执行文件路径填写进去
FFmpeg ffmpeg = new FFmpeg("D:/install/ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe");
FFprobe ffprobe = new FFprobe("D:/install/ffmpeg-master-latest-win64-gpl/bin/ffprobe.exe");
FFmpegBuilder builder = new FFmpegBuilder()
// 源视频文件
.setInput("D:/ffmpeg/video222.mov")
// 目标视频文件
.addOutput("D:/ffmpeg/video222.mp4")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createJob(builder).run();
System.err.println("---------执行完毕----------------");
}
}
Linux 版解压使用
注:方式同上,唯一不同的就是Linux中的路径不同和没有".exe"