java使用ffmpeg处理视频的方法
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
官网链接http://ffmpeg.org/
1.下载并解压windows版本安装包
2.windows本地使用命令行测试
1.修改格式测试(转码)
- 将需要修改的视频A.avi提前放在bin目录下
- 在bin目录下cmd进入命令行
- 输入命令完成转码成B.mp4
ffmpeg.exe-iA.avi-yB.mp4
2.视频音频结合测试
- 将需要修改的视频A.avi和bgm.mp3提前放在bin目录下
- 在bin目录下cmd进入命令行
- 输入命令完成合并成8秒的new.avi
ffmpeg.exe-iA.avi-ibgm.mp3-t8-ynew.avi
3.java中建立工具测试类
packagecom.xc.utils;
importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.List;
publicclassFFMpegTest{
privateStringffmpegEXE;
publicFFMpegTest(StringffmpegEXE){
super();
this.ffmpegEXE=ffmpegEXE;
}
publicvoidconvertor(StringvideoInputPath,StringvideoOutputPath)throwsException{
// ffmpeg-iinput.mp4-youtput.avi
Listcommand=newArrayList<>();
command.add(ffmpegEXE);
command.add("-i");
command.add(videoInputPath);
command.add("-y");
command.add(videoOutputPath);
for(Stringc:command){
System.out.print(c+"");
}
ProcessBuilderbuilder=newProcessBuilder(command);
Processprocess=builder.start();
InputStreamerrorStream=process.getErrorStream();
InputStreamReaderinputStreamReader=newInputStreamReader(errorStream);
BufferedReaderbr=newBufferedReader(inputStreamReader);
Stringline="";
while((line=br.readLine())!=null){
}
if(br!=null){
br.close();
}
if(inputStreamReader!=null){
inputStreamReader.close();
}
if(errorStream!=null){
errorStream.close();
}
}
publicstaticvoidmain(String[]args){
FFMpegTestffmpeg=newFFMpegTest("C:\\ffmpeg\\bin\\ffmpeg.exe");
try{
ffmpeg.convertor("C:\\a.mp4","C:\\b.avi");
}catch(Exceptione){
e.printStackTrace();
}
}
}
packagecom.xc.utils;
importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.List;
publicclassMergeVideoMp3{
privateStringffmpegEXE;
publicMergeVideoMp3(StringffmpegEXE){
super();
this.ffmpegEXE=ffmpegEXE;
}
publicvoidconvertor(StringvideoInputPath,Stringmp3InputPath,
doubleseconds,StringvideoOutputPath)throwsException{
// ffmpeg.exe-iA.avi-ibgm.mp3-t7-ynew.avi
Listcommand=newArrayList<>();
command.add(ffmpegEXE);
command.add("-i");
command.add(videoInputPath);
command.add("-i");
command.add(mp3InputPath);
command.add("-t");
command.add(String.valueOf(seconds));
command.add("-y");
command.add(videoOutputPath);
// for(Stringc:command){
// System.out.print(c+"");
// }
ProcessBuilderbuilder=newProcessBuilder(command);
Processprocess=builder.start();
InputStreamerrorStream=process.getErrorStream();
InputStreamReaderinputStreamReader=newInputStreamReader(errorStream);
BufferedReaderbr=newBufferedReader(inputStreamReader);
Stringline="";
while((line=br.readLine())!=null){
}
if(br!=null){
br.close();
}
if(inputStreamReader!=null){
inputStreamReader.close();
}
if(errorStream!=null){
errorStream.close();
}
}
publicstaticvoidmain(String[]args){
MergeVideoMp3ffmpeg=newMergeVideoMp3("C:\\ffmpeg\\bin\\ffmpeg.exe");
try{
ffmpeg.convertor("C:\\a.avi","C:\\bgm.mp3",7.1,"C:\\javaNew.mp4");
}catch(Exceptione){
e.printStackTrace();
}
}
}
总结
到此这篇关于java使用ffmpeg处理视频的方法的文章就介绍到这了,更多相关javaffmpeg处理视频内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。