java多媒体文件编码 处理工具类代码实例
这篇文章主要介绍了java多媒体文件编码处理工具类使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
引入
org.apache.storm storm-core 1.1.0 org.apache.storm storm-kafka 1.0.4 org.jcodec jcodec 0.2.5 test io.humble humble-video-all 0.3.0 org.mp4parser isoparser 1.9.39
代码
/*** *https://stackoverflow.com/questions/38123693/how-to-concatenate-merge-two-videos-in-a-new-video-file-in-java *@paramaggregate合并待输出文件 *@paramsegmentsMPEGtransportstream(FFMpegmpegts)、MPEG-2TS视频;波形声音 *@throwsInterruptedException *@throwsIOException */ privatevoidmerge(Fileaggregate,Collectionsegments)throwsInterruptedException,IOException{ Muxermuxer=Muxer.make(aggregate.toString(),MuxerFormat.getFormat(96),"wav"); finalMediaPacketpacket=MediaPacket.make(); longdts_offset=0; longpts_offset=0; for(Filesegment:segments){ Demuxerdemuxer=Demuxer.make(); //optionhttps://ffmpeg.org/ffmpeg-formats.html demuxer.open(segment.toString(),null,false,true,null,null); if(muxer.getState()==Muxer.State.STATE_INITED){ intnumStreams=demuxer.getNumStreams(); for(ints=0;s =0){ if(packet.isComplete()){ packet.setDts(packet.getDts()+dts_offset); packet.setPts(packet.getPts()+pts_offset); dts_max=packet.getDts()+1; pts_max=packet.getPts()+1; muxer.write(packet,false); } } dts_offset=dts_max; pts_offset=pts_max; demuxer.close(); } muxer.close(); }
测试
@Test publicvoidtestFormat() { MuxerFormatformat=MuxerFormat.getFormat(128); System.out.println(format); Collectionformats=MuxerFormat.getFormats(); formats.stream().forEach(this::out); } voidout(MuxerFormatformat) { System.out.printf("%s%s\n",format.getName(),format.getMimeType()); } @Test publicvoidtest()throwsIOException,InterruptedException{ Stringdirectory="C:\\Users\\Administrator\\AppData\\Local\\Temp\\8ad088a2-0bb3-41dc-89d9-2c57ef8414b0"; List files=Files.list(Paths.get(directory)).map(path->path.toFile()).filter(file->file.getName().endsWith(".ts")) .collect(Collectors.toList()); Filedest=newFile(directory+"\\dest.wav"); merge(dest,files); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。