Open source java中的开源mp4 muxer

Open source java中的开源mp4 muxer,open-source,containers,mp4,muxer,Open Source,Containers,Mp4,Muxer,是否有任何开源MP4 muxer/writer java项目(源代码用java编写,没有本机代码)可用 我将H.264和AAC原始/基本流存储在单独的文件中。我想对它们进行多路复用,并获取包含音频和视频的.mp4视频文件 提前感谢您的宝贵建议。请使用该库。据我所知,它是唯一一个可以mux AAC和H264的纯Java工具。它还精确地提供了您正在描述的用例 完全披露:我是图书馆的创造者 AACTrackImpl audio= new AACTrackImpl(new FileInputStrea

是否有任何开源MP4 muxer/writer java项目(源代码用java编写,没有本机代码)可用

我将H.264和AAC原始/基本流存储在单独的文件中。我想对它们进行多路复用,并获取包含音频和视频的.mp4视频文件

提前感谢您的宝贵建议。

请使用该库。据我所知,它是唯一一个可以mux AAC和H264的纯Java工具。它还精确地提供了您正在描述的用例

完全披露:我是图书馆的创造者

 AACTrackImpl audio= new AACTrackImpl(new FileInputStream("sample.aac").getChannel());
 H264TrackImpl video = new H264TrackImpl(new FileInputStream("sample.h264"));
 Movie m = new Movie();
 m.addTrack(video);
 m.addTrack(audio);

 IsoFile out = new DefaultMp4Builder().build(m);
 FileOutputStream fos = new FileOutputStream(new File("output.mp4"));
 out.getBox(fos.getChannel());
 fos.close();
无法使用最新的源代码编译来自的上一个示例。 我正在使用folliwing代码将h264行(来自android MediaCodec)多路复用到.mp4容器中

    H264TrackImpl video;
    try {
        video = new H264TrackImpl(new FileDataSourceImpl("/home/aod/tmp/rec_1392309584754.h264"), "eng", 9, 1);
        Movie m = new Movie();
        m.addTrack(video);

        BasicContainer out = (BasicContainer) new DefaultMp4Builder().build(m);
        FileOutputStream fos = new FileOutputStream(new File("/home/aod/tmp/output.mp4"));
        out.writeContainer(fos.getChannel());
        fos.flush();                        
        fos.close();
    } catch ( IOException e) {
        e.printStackTrace();
    }

Mux是“多路复用”中的Mux,还是“混合”?“Mux”的意思是,通过多路复用单独录制的h.264视频基本流和aac音频基本流来生成.mp4容器文件。您需要java中的Mux吗?android?非常感谢。我尝试在android上使用它,但遇到了一个问题,我已经在google讨论组()上发布了这个问题。Sebastian Annies,您的项目对于Android4.1+非常有用,因为Jellibean以后支持的原始媒体编码器没有mp4 filewriter API。()…我使用了相同的方法,但问题是h264播放速度太快。在混入mp4后,它仍然播放得太快。你遇到过这个问题吗?是的。