首页 > 编程知识 正文

视频格式转换工具下载,音频格式转换工具

时间:2023-05-04 00:26:15 阅读:178881 作者:2860

ws.schild视频格式转换工具使用心得简介1 .视频属性2 .音频属性2 .步骤1 .引入ws.schild的jar包2 .视频转码

前言ws.schild是基于ffmpeg的java工具包,是目前主流的进行视频和音频转码、裁剪以及提取操作的java工具包。

一、主要工具类介绍1.videoattributesvideoattributes是ws.schild工具包中设置视频属性的重要工具类,ws.schild是实现视频操作的关键,同时应用最为广泛

使用注意事项:(以下称为video是此类的实例化对象) )。

1 .视频的质量属性对转码后的视频的大小有很大的影响,转码的时间也有影响,主要影响视频质量。 参数类型为整形,数值越小表示质量越高。

2 .视频的size (视频大小)属性对转码后的视频的大小有很大的影响,也对转码的时间有影响。 参数类型为可视化。

3 .视频的比特率属性极大地影响被转码的视频的大小和时间,主要影响视频的平滑度,一般需要较大的设置,例如100k。

4 .视频的编解码器属性通常设置为mpeg4或h264。

5 .视频的帧速率属性不要设置得太低。 通常设定为15以上。 太小的话视频就不平滑。

(上述属性可能会因视频而异。 具体需要自己做很多测试~~)

2.audioattributesaudioattributes是ws.schild工具包音频属性设置的重要工具类。

二.使用在步骤ws.schild中导入的jar包,首先利用maven生成项目,然后将第三方jar包导入pom文件中。

ependencygroupidws.schild/groupidartifactidjave-all-deps/artifactidversion3.0.1/version/dependency2.是视频

/** *视频转码* @ paramvideosource * @ paramvideotarget * @ returntrueorfalse */publicstaticbooleanvideotovideo (//ssseo //system.out.println (simple date format.format ) time ); long start=system.current time millis (; ilesource=newfile(videosource; filetarget=newfile(videotarget; audioattributesaudio=newaudioattributes (; audio.setcodec(AAC ); audio.setbitrate(236000/2; audio.setchannels(2); audio.setsamplingrate(8000; videoattributesvideo=newvideoattributes (; video.setcodec(H264 ); video.setbitrate(1000000; video.setframerate(25; video.setquality(4); //video.setsize(newvideosize ) 720、480 ); encodingattributesattrs=newencodingattributes (; attrs.setoutputformat('MP4 ' ); attrs.setaudioattributes(audio ); ttrs.setvideoattributes(video ); Encoder encoder=new Encoder (; try {

encoder.encode(new MultimediaObject(source), target, attrs); return true; } catch (Exception e) { e.printStackTrace(); System.out.println(encoder.getUnhandledMessages()); return false; }finally {// time = new Date();// System.out.println(simpleDateFormat.format(time)); long end = System.currentTimeMillis(); System.out.println("总耗时:"+ (end-start) +"ms"); } } 3. 实现音频的转码

将音频转码为mp3编码:

/** * m4r音频格式转换为mp3,audioPath可更换为要转换的音频格式 * @param audioPath * @param mp3Path */ public static void m4rToMp3(String audioPath,String mp3Path){ File source = new File(audioPath); File target = new File(mp3Path); AudioAttributes audio = new AudioAttributes(); audio.setCodec("libmp3lame"); audio.setBitRate(128000); audio.setChannels(2); audio.setSamplingRate(44100); EncodingAttributes attrs = new EncodingAttributes(); attrs.setOutputFormat("mp3"); attrs.setAudioAttributes(audio); Encoder encoder = new Encoder(); try { encoder.encode(new MultimediaObject(source), target, attrs); } catch (EncoderException e) { e.printStackTrace(); } } 4. 实现视频文件转为音频文件

将视频转为音频:

/** * 视频文件转音频文件 * @param videoPath * @param audioPath * return true or false */ public static boolean videoToAudio(String videoPath, String audioPath){ File fileMp4 = new File(videoPath); File fileMp3 = new File(audioPath); AudioAttributes audio = new AudioAttributes(); audio.setCodec("libmp3lame"); audio.setBitRate(128000); audio.setChannels(2); audio.setSamplingRate(44100); EncodingAttributes attrs = new EncodingAttributes(); attrs.setOutputFormat("mp3"); attrs.setAudioAttributes(audio); Encoder encoder = new Encoder(); MultimediaObject mediaObject = new MultimediaObject(fileMp4); try{ encoder.encode(mediaObject,fileMp3,attrs); Log.info("File MP4 convertito MP3"); return true; }catch (Exception e){ Log.error("File non convertito"); Log.error(e.getMessage()); return false; } }
总结

ws.schild 工具包可以非常方便的帮助我们实现对视频和音频的转码和裁剪等操作,并且可以通过设置不同参数来满足不同的需求。但是就目前的测试结果而言,不同的编码格式对于参数的敏感度可能不同,具体场景应该具体分析。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。