多个MP3音频合成

FFmpeg详细安装步骤和使用笔记 - 知乎

java 复制代码
package com.bootdo;

import java.io.BufferedReader;
import java.io.IOException;  
import java.io.InputStreamReader;  
  
public class Mp3Merger {  
  
    public static void main(String[] args) {  
        String ffmpegPath = "ffmpeg"; // 或者指定FFmpeg的完整路径,例如 "/usr/bin/ffmpeg"

        String input1 = "D:/ZHJQDoc/" + "智慧广播前奏.MP3";
        //合并音频
        String input2 = "D:/ZHJQDoc/烟花爆竹.MP3";
        // 输出文件
        String output = "D:/ZHJQDoc/merged.mp3";

  
        // 构建FFmpeg命令  
        String[] command = {  
            ffmpegPath,  
            "-i", input1,  
            "-i", input2,  
            "-filter_complex", "[0:a:0][1:a:0]concat=n=2:v=0:a=1[a]",  
            "-map", "[a]",  
            "-acodec", "libmp3lame",  
            "-ab", "159k",
            "-ar", "48000",
            output  
        };  
  
        // 执行FFmpeg命令  
        ProcessBuilder processBuilder = new ProcessBuilder(command);  
        processBuilder.redirectErrorStream(true); // 合并stdout和stderr  
  
        try {  
            Process process = processBuilder.start();  
  
            // 读取FFmpeg的输出  
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));  
            String line;  
            while ((line = reader.readLine()) != null) {  
                System.out.println(line);  
            }  
  
            // 等待进程完成  
            int exitCode = process.waitFor();  
            if (exitCode == 0) {  
                System.out.println("MP3 files merged successfully.");  
            } else {  
                System.out.println("FFmpeg exited with error code " + exitCode);  
            }  
  
        } catch (IOException | InterruptedException e) {  
            e.printStackTrace();  
        }  
    }  
}
相关推荐
QQ_216962909635 分钟前
【项目编号:project95315】SpringBoot公共自习室管理系统:座位预约、房间管理、签到核销、公告规则完整实战
java·spring boot·后端
嵌入式阿蔡1 小时前
面试高频考点 01:volatile / 中断 / 堆栈 八股精讲
java·面试·职场和发展·嵌入式实时数据库
秋饼1 小时前
LangChain4j + Java 实现企业级 Text-to-SQL 智能问数系统:从自然语言到安全可控的数据洞察
java·ai·技术分享·后端开发
Escalating_xu1 小时前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
何以解忧,唯有..1 小时前
Python os模块详解:文件与目录操作指南
java·服务器·python
Csxyzj2 小时前
kubernetes集群部署方法
java·linux·kubernetes
SQL-First布道者2 小时前
全面解构传统持久层框架,拥抱真正的 SQL-First
java·数据库·spring boot·sql·spring·mybatis·spring jdbc
小蒜学长2 小时前
vue旅游攻略网站(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端·旅游
凤山老林2 小时前
轻量级规则引擎落地:Spring Boot 集成 LiteFlow 实现动态业务编排与热更新
java·spring boot·后端·规则引擎·liteflow
夏贰四3 小时前
管控数据加载调度如何规避任务冲突?数据加载运维监控体系该如何搭建?
java·大数据·运维