首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的开源mp4多路复用器

java中的开源mp4多路复用器
EN

Stack Overflow用户
提问于 2013-01-02 19:36:20
回答 2查看 4.2K关注 0票数 3

有没有可用的开源MP4复用器/写入器java项目(用java编写的源代码,没有本机代码)?

我有H.264和AAC原始/基本流存储单独的文件。我想多路复用他们,并得到包含音频和视频的.mp4视频文件。

提前感谢您的宝贵建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-28 01:13:16

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

完全公开:我是这个库的创建者。

代码语言:javascript
复制
 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();
票数 3
EN

Stack Overflow用户

发布于 2014-02-14 01:57:36

来自isoparser的以前的示例不能用最新的源代码编译。我正在使用以下代码将行h264(来自安卓MediaCodec)多路复用到.mp4容器中

代码语言:javascript
复制
    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();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14121355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档