Jave2是什么?
JAVE2(Java音。。编码器)库是ffmpeg项目上的一个Java包装器。开发人员可以使用JAVE2将音频和。。文件从一种格式转换为另一种格式。在示例中,您可以将AVI文件转换为MPEG文件,
DivX。。流可以转换为Flash FLV文件(类似YouTube),WAV音频文件可以转换为MP3或Ogg Vorbis文件,音频和。。轨道可以分离和转码,。。可以调整大小。
改变其大小和比例等。JAVE2支持许多其他格式、容器和操作。Jave2的主页介绍:
JAVE2是一个小的java库,它将ffmpeg包装成Java类。它是根据卡洛佩利西亚的杰作改编的。由于不再维护代码,我们采用了代码并用当前版本替换了ffmpeg可执行文件。
并修改了代码以使用新的二进制文件。
Jave2是在Jave的基础上发展起来的。
Jave基于Carlo Pelliccia的Jave版本,包含源代码的原始项目页面可以在这里找到:http://www.sauronsoftware.it/projects/jave/.
我点开了Jave网站,可能尘封很久了,很高兴打开。然后看了介绍文档,很久没更新了。
阅读文档后,安装要求如下。
Installation and requirements
In order to use JAVE in your Java application, you have to add the filejave-1.0.jar in your application CLASSPATH.JAVE runs on a Java Runtime Environment J2SE v.1.4 or later.
也就是说,如果要使用JAVE,需要将jave-1.0.jar添加到合适的类路径中,然后JRE的版本就是J2SE v.1.4,看了这个描述,应该就知道这个项目是一个“古董”项目了。
J2SE v.1.4,估计很多朋友只是听说过,根本没用过。
文档中的其他说明就不详细展开了,有兴趣的小伙伴可以看看。地址已经贴在上面了。
如何玩jave 2 github:https://github.com/a-schild/jave2,我看了,四个月前还在更新。
支持的操作系统需要Java8:你熟悉吗?这个应该用过,支持的操作系统也挺全面的。来自“古董”的东西变成了“珍宝”。
支持来自github描述的Maven/Gradle,支持Maven/Gradle引入依赖jar,相比jave1.0,需要先从官网下载jar。
然后手动添加应用程序的类路径仍然要高得多。
Jave2由两个主要部分组成:1 .jave-核心依赖,包括所有Java代码,独立于平台2。jave-nativebin- dependency,
每个平台的二进制可执行文件包括一个jave-all-deps项目,该项目包括内核和所有Windows和Linux二进制文件。
下面是Maven的介绍(使用前先看看最新版本号)
所有支持平台ws.schildjave-all-deps2.7.3的二进制文件如果要在一个或多个平台上使用,必须引入jave-core。
Ws.schildjave-core2.7.3和特定于平台的jar。
如果仅在Linux 64Bit 平台,则加入下面的依赖配置。ws.schildjave-nativebin-linux642.7.3如果仅在Windows 64Bit 平台,则加入下面的依赖配置。
ws.schildjave-nativebin-win642.7.3如果仅在MACOS 64Bit 平台,则加入下面的依赖配置。
ws.schildjave-nativebin-osx642.7.3Gradle方式这里就不做介绍,自行看文档说明,也比较简单。
实战演练我用的是window 64 ,引入了最新2.7.3版本jave-core 、 jave-nativebin-win6
将arm文件转为mp3文件publicclassArmToMp3Test{privatestaticLoggerlogger=LoggerFactory.getLogger(ArmToMp3Test.class);publicstaticvoidmain(String[]args){try{Filesource=newFile('D:\\tmp\\Java编程技术乐园.amr');Filetarget=newFile('D:\\tmp\\java编程技术乐园amrToMp3.mp3');//AudioAttributesAudioAttributesaudio=newAudioAttributes();audio.setCodec('libmp3lame');audio.setBitRate(128000);audio.setChannels(2);audio.setSamplingRate(44100);//EncodingattributesEncodingAttributesattrs=newEncodingAttributes();attrs.setFormat('mp3');attrs.setAudioAttributes(audio);//EncodeEncoderencoder=newEncoder();encoder.encode(newMultimediaObject(source),target,attrs);}catch(Exceptionex){logger.error('ArmToMp3Test#main异常',ex);}}}//执行完,
使用监听器监听转换进度-高级一点的用法用到ws.schild.jave.EncoderProgressListener 接口:编码进度侦听器接口。实现类的实例可以用来听的编码过程。
publicinterfaceEncoderProgressListener{/***Thismethodiscalledbeforetheencodingprocessstarts,reporting*informationaboutthesourcestreamthatwillbedecodedandre-encoded.*这种方法是在编码过程开始之前被调用,
使用了监听器,能够监听。。转换的进度
获取了。。的时长,其实大小也是可以获取的。hour + '时' + minute + '分' + second + '秒
注:因为音。。的编码格式挺多,很多编解码协议还没看。上面例子也是找的文档配置,如有不对,欢迎指出。
其实jave2还有很多高端的操作,后续有机会在整理出来。
问题收集1、有小伙伴在执行的时候遇到了如下报错:
Cannot run program
'C:\xxx\Local\Temp\jave\ffmpeg-amd64-2.7.3.exe'
ws.schild.jave.EncoderException:java.io.IOException:Cannotrunprogram'C:\Users\acer\AppData\Local\Temp\jave\ffmpeg-amd64-2.7.3.exe':CreateProcesserror=2, 系统找不到指定的文件。
相关源码:
Encoderencoder=newEncoder();publicEncoder(){this.locator=newDefaultFFMPEGLocator();}//DefaultFFMPEGLocatorpublicDefaultFFMPEGLocator(){//获取操作系统类型Stringos=System.getProperty('os.name').toLowerCase();booleanisWindows=os.contains('windows');booleanisMac=os.contains('mac');LOG.debug('Osnameis{}isWindows:{}isMac:{}',newObject[]{os,isWindows,isMac});FiledirFolder=newFile(System.getProperty('java.io.tmpdir'),'jave/');if(!dirFolder.exists()){LOG.debug('Creatingjavetempfoldertoplaceexecutablesin{}',dirFolder.getAbsolutePath());dirFolder.mkdirs();}else{LOG.debug('Javetempfolderexistsin{}',dirFolder.getAbsolutePath());}//获取文件的后缀Stringsuffix=isWindows '.exe':(isMac '-osx':'');Stringarch=System.getProperty('os.arch');//获取ffmpeg文件,
标题:推荐一款Java音频视频编码器,很赞
链接:https://www.52hkw.com/news/rj/68848.html
版权:文章转载自网络,如有侵权,请联系删除!