本篇文章为你整理了SpringBoot集成ffmpeg实现视频转码播放()的详细内容,包含有 SpringBoot集成ffmpeg实现视频转码播放,希望能帮助你了解 SpringBoot集成ffmpeg实现视频转码播放。
之前构建过文件预览服务,对于视频部分前端播放组件限制只能为mp4格式,为了支持更多视频格式决定对方案进行升级,由于视频格式较多,针对每一种格式定制选择播放器不太现实,决定对视频源统一转码,转码后的格式为mp4,兼容性稳定且前后端改造工作较小
maven添加java-all-deps引用,该引用内置不同版本ffmpeg文件,为了避免打包后文件过大,排除不需要的平台兼容支持
dependency
groupId ws.schild /groupId
artifactId jave-all-deps /artifactId
version 3.3.1 /version
exclusions
!-- 排除windows 32位系统 --
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-win32 /artifactId
/exclusion
!-- 排除linux 32位系统 --
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-linux32 /artifactId
/exclusion
!-- 排除Mac系统--
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-osx64 /artifactId
/exclusion
!-- 排除osxm--
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-osxm1 /artifactId
/exclusion
!-- 排除arm--
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-linux-arm32 /artifactId
/exclusion
exclusion
groupId ws.schild /groupId
artifactId jave-nativebin-linux-arm64 /artifactId
/exclusion
/exclusions
/dependency
主要通过执行ffmpeg转换命令进行转码,指定编码器,画质,代码通过流读取执行结果,阻塞命令以同步方式执行完毕,执行完毕后写入finish.txt标识,便于前端轮询视频是否转码完毕,跳转播放页面
ffmpeg -i inputpath -c:v libx264 -crf 19 -strict experimental outputpath
ProcessWrapper ffmpeg = new DefaultFFMPEGLocator().createExecutor();
ffmpeg.addArgument("-i");
ffmpeg.addArgument(fileConvertInfo.getFilePath());
ffmpeg.addArgument("-c:v");
ffmpeg.addArgument("libx264");
ffmpeg.addArgument("-crf");
ffmpeg.addArgument("19");
ffmpeg.addArgument("-strict");
ffmpeg.addArgument("experimental");
ffmpeg.addArgument(fileConvertInfo.getFileDirPath() + "convert.mp4");
ffmpeg.execute();
try (BufferedReader br = new BufferedReader(new InputStreamReader(ffmpeg.getErrorStream()))) {
blockFfmpeg(br);
File file = new File(fileConvertInfo.getFileDirPath() + "finish.txt");
file.createNewFile();
经过测试以下视频格式支持转码mp4
.mp4;.asf;.avi;.dat;.f4v;.flv;.mkv;.mov;.mpg;.rmvb;.ts;.vob;.webm;.wmv;.vob
以上就是SpringBoot集成ffmpeg实现视频转码播放()的详细内容,想要了解更多 SpringBoot集成ffmpeg实现视频转码播放的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。