java中的开源mp4 muxer

时间:2013-01-02 11:36:20

标签: open-source containers mp4 muxer

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

我有H.264& AAC原始/基本流存储单独的文件。我想要复用它们并获得包含Audio& amp;的.mp4视频文件。视频。

提前感谢您的宝贵建议。

2 个答案:

答案 0 :(得分:3)

使用isoparser库,据我所知,这是唯一可以复用AAC和H264的纯Java工具。它还为您描述的用例提供了an example

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

 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();

答案 1 :(得分:0)

来自isoparser的上一个示例无法使用最新来源进行编译。 我使用以下代码将原始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();
    }