SpringBoot集成ffmpeg实现视频转码播放()

  本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: