avi和音频合成 ffmpeg_音频处理工具ffmpeg的简单使用

一、去官网下载

二、使用ffmpeg将视频.mp4转成音频.avi

三、截取视频的封面

public void getCover(String videoInputPath, String coverOutputPath) throws IOException, InterruptedException {

// ffmpeg.exe -ss 00:00:01 -i spring.mp4 -vframes 1 bb.jpg

List command = new java.util.ArrayList();

command.add(ffmpegEXE);

// 指定截取第1秒

command.add("-ss");

command.add("00:00:01");

command.add("-y");

command.add("-i");

command.add(videoInputPath);

command.add("-vframes");

command.add("1");

command.add(coverOutputPath);

for (String c : command) {

System.out.print(c + " ");

}

ProcessBuilder builder = new ProcessBuilder(command);

Process process = builder.start();

InputStream errorStream = process.getErrorStream();

InputStreamReader inputStreamReader = new InputStreamReader(errorStream);

BufferedReader br = new BufferedReader(inputStreamReader);

String line = "";

while ( (line = br.readLine()) != null ) {

}

if (br != null) {

br.close();

}

if (inputStreamReader != null) {

inputStreamReader.close();

}

if (errorStream != null) {

errorStream.close();

}

}

四、将视频和音乐合并在一起,即为视频选一首背景音乐

public void convertor(String videoInputPath, String mp3InputPath, double seconds, String videoOutputPath) throws IOException {

//ffmpeg.exe -i dormitory.mp4 -i bgm.mp3 -t 6 -y 新的视频.mp4

List command = new ArrayList();

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("-strict"); //linux环境下如果截图需要添加下面两个参数

// command.add("-2");

command.add("-y");

command.add(videoOutputPath);

ProcessBuilder processBuilder = new ProcessBuilder(command);

Process process = processBuilder.start();

//如果内存中太多流,会把当前线程卡住,需要清理

InputStream errorStream = process.getErrorStream();

InputStreamReader inputStreamReader = new InputStreamReader(errorStream);

BufferedReader br = new BufferedReader(inputStreamReader);

String line = "";

while((line=br.readLine()) != null){

}

if(br != null){

br.close();

}

if(inputStreamReader != null){

inputStreamReader.close();

}

if(errorStream != null){

errorStream.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值