介绍
这期内容当中小编将会给大家带来有关JAVAE2项目如何实现对视频格式进行转换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强> JAVAE简介:强>
JAVE (Java音频视频编码器)库是ffmpeg项目的Java包装器。开发人员可以利用JAVE2将音频和视频文件从一种格式转换为另一种格式。在示例可以转换成一个AVI文件MG,您可以更改一个DivX视频(youtube) Flash FLV,您可以转换WAV音频文件到MP3和Ogg Vorbis,您可以分离和转换音频和视频跟踪代码,您可以调整视频,改变他们的大小和比例等.JAVE2还支持许多其他格式,容器和操作。
引用>官网地址:https://www.mvnjar.com/ws.schild/jave-all-deps/2.4.2/detail.html
github地址:https://github.com/a-schild/jave2/tree/master/jave-example
maven地址:https://mvnrepository.com/artifact/ws.schild/jave-all-deps
<强>快速上手强>
导包
& lt; dependency> & lt; groupId> ws.schild & lt; artifactId> jave-all-deps & lt; version> 2.4.2 & lt;/dependency><强>工具类强>
包com.example.javae2.util; 进口cn.hutool.core.util.ObjectUtil; 进口ws.schild.jave。*; 进口java.io.File; 进口java.nio.file.Paths; 进口java.util.HashMap; 进口java.util.Map; 公开课VideoUtils { 私有静态Map<字符串,Integer>sizeBitRateMap; 静态{ ,sizeBitRateMap=new HashMap<的在(); sizeBitRateMap.put (“1920 * 1080,, 4992); sizeBitRateMap.put (“1280 * 720,, 2496); sizeBitRateMap.put (“1024 * 576,, 1856); sizeBitRateMap.put (“840 * 480,, 1216); sizeBitRateMap.put (“768 * 432,, 1088); sizeBitRateMap.put (“640 * 360,, 896); sizeBitRateMap.put (“424 * 240,, 576); } 公共静态void main (String [] args) { VideoUtils VideoUtils=new VideoUtils (); videoUtils。convertVideoToMP4(新文件(“C: \ \ temp \ \ javae2 \ \ 0001。哔哩哔哩——颈椎操(流畅版].flv"),“C: \ \ temp \ \ javae2 \ \ 0001。哔哩哔哩——颈椎操(流畅版].mp4");//videoUtils。getVideoInfoAndGenerateThumbnail(新文件(“C: \ \ \ \ temp \ \ \ \ javae2 \ \ \ \ 0001。哔哩哔哩——颈椎操(流畅版].mp4"),“C: \ \ \ \ temp \ \ \ \ javae2 \ \ \ \ 0001。哔哩哔哩——颈椎操(流畅版]. . jpg"); }/* * *截取视频的一针作为封面图 * * @param文件视频文件 * @param thumbnailPath截取图片保存路径 * @return */公共空间getVideoInfoAndGenerateThumbnail(文件文件、字符串thumbnailPath) { MultimediaObject MultimediaObject=new MultimediaObject(文件); 尝试{ MultimediaInfo信息=multimediaObject.getInfo (); VideoInfo VideoInfo=info.getVideo (); logger.info(“获取视频时长:{}“,info.getDuration ()/1000); 如果(ObjectUtil.isNotNull (videoInfo)) { VideoSize大?videoInfo.getSize (); int宽度=size.getWidth (); int高度=size.getHeight (); logger.info(“视频宽:{}视频高{}“,宽度、高度); logger.info(“比特率:{}“,videoInfo.getBitRate ()/1000); ScreenExtractor ScreenExtractor=new ScreenExtractor (); 目标=新的文件(thumbnailPath);//截取视频作为图片保存/* *第一个参数视频源文件信息类 *第二个参数截取的宽度 *第三个参数截取的高度 *第四个参数截取的是那一帧 *第五个参数是截取的图片质量数日至31日字越小质量越高 * * */screenExtractor。renderOneImage (multimediaObject size.getWidth (), size.getHeight(), 3000年,目标,31); } }捕捉(EncoderException e) { e.printStackTrace (); } }/* * * @param源源文件 * @param定位路径转码后的路径 */公共空间convertVideoToMP4(文件源字符串定位路径){ MultimediaObject MultimediaObject=new MultimediaObject(源); 尝试{ MultimediaInfo信息=multimediaObject.getInfo (); VideoInfo VideoInfo=info.getVideo (); VideoSize大?videoInfo.getSize (); System.out.println(“原视频宽:“+ size.getWidth ()); System.out.println(“原视频高:“+ size.getHeight ()); System.out.println(“原视频比特率:“+ videoInfo.getBitRate ()/1000); System.out.println(“原视频编码:“+ videoInfo.getDecoder ()); 整数比特率=sizeBitRateMap.get (size.getWidth () +“*”;+ size.getHeight ()); VideoAttributes视频=new VideoAttributes ();//设置视频编码 video.setCodec (“h364"); 如果(ObjectUtil.isNotNull(比特率)){//设置比特率 视频。setBitRate(比特率* 1000); } 目标=新的文件(定位路径); AudioAttributes音频=new AudioAttributes ();//设置编码器名称 audio.setCodec (“aac"); EncodingAttributes attrs=new EncodingAttributes ();//设置转换后的格式 attrs.setFormat (“mp4"); attrs.setAudioAttributes(音频); attrs.setVideoAttributes(视频); 编码器编码器=new编码器(); 编码器。编码(目标,multimediaObject attrs);//花费毫秒数 MultimediaObject multimediaObjectOfter=new MultimediaObject (Paths.get(定位路径).toFile ()); MultimediaInfo info1=multimediaObjectOfter.getInfo (); VideoInfo video1=info1.getVideo (); VideoSize size1=video1.getSize (); System.out.println(“转换后视频宽:“+ size1.getWidth ()); System.out.println(“转换后视频高:“+ size1.getHeight ()); System.out.println(“转换后视频比特率:“+ video1.getBitRate ()/1000); System.out.println(“转换后视频编码:“+ video1.getDecoder ()); }捕捉(EncoderException e) { e.printStackTrace (); } } }JAVAE2项目如何实现对视频格式进行转换