在安卓设备上使用mp4parser合并Mp4文件

5

我想知道有没有人知道如何在Android上使用mp4parser将mp4音频文件叠加到mp4视频文件上。我已经能够将一个视频追加到另一个视频上,现在我只需要在合并的文件上叠加一个原始mp4。

如果有帮助,将不胜感激!

1个回答

4
以下代码混合了两种音频语言和一个视频。您可以根据需要轻松地采用它:
public static void main(String[] args) throws IOException {

    String audioDeutsch = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-deutsch-audio.mp4";
    String audioEnglish = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-english-audio.mp4";
    String video = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-video.mp4";


    Movie countVideo = MovieCreator.build(new FileInputStream(video).getChannel());
    Movie countAudioDeutsch = MovieCreator.build(new FileInputStream(audioDeutsch).getChannel());
    Movie countAudioEnglish = MovieCreator.build(new FileInputStream(audioEnglish).getChannel());

    Track audioTrackDeutsch = countAudioDeutsch.getTracks().get(0);
    audioTrackDeutsch.getTrackMetaData().setLanguage("deu");
    Track audioTrackEnglish = countAudioEnglish.getTracks().get(0);
    audioTrackEnglish.getTrackMetaData().setLanguage("eng");

    countVideo.addTrack(audioTrackDeutsch);
    countVideo.addTrack(audioTrackEnglish);

    Container out = new DefaultMp4Builder().build(countVideo);
    FileOutputStream fos = new FileOutputStream(new File("output.mp4"));
    out.writeContainer(fos.getChannel());
    fos.close();

}

使用这段代码时,音频正在被覆盖。有什么帮助吗? - Ahmad Arslan
1
@Sebastian 音频轨道是一个接一个地添加的。有没有办法可以添加两个音频轨道,让它们同时运行,当然还有视频。假设我有一个视频、一个语音音频和一个背景音乐。现在我想让这两个音频与视频同时运行。你能帮忙实现吗? - ROCKY
上述代码将视频与添加的第一个音轨混合。我想要同时播放两个音轨和视频文件。有人可以帮我吗? - Amit Thaper
@SebastainAnnies 在Java中使用mp4parser将两个视频文件合并成一个,是否可行? - user3751794

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接