1. 文件操作
【mp4parser】 这个库提供了用于读取、写入和创建MP4文件的Java API,包含三个组件:
- isoparser
- muxer
- streaming
我用了muxer,将H264文件和AAC文件合并为MP4文件。
1 2 3 4 5 6
| <dependency> <groupId>org.mp4parser</groupId> <artifactId>muxer</artifactId> <version>1.9.41</version> </dependency>
|
1 2 3 4 5 6 7 8 9 10
| H264TrackImpl h264Track = new H264TrackImpl(new FileDataSourceImpl(h264Path)); AACTrackImpl aacTrack = new AACTrackImpl(new FileDataSourceImpl(aacPath)); Movie movie = new Movie(); movie.addTrack(h264Track); movie.addTrack(aacTrack); Container mp4file = new DefaultMp4Builder().build(movie);
FileChannel fc = new FileOutputStream(new File(outPath)).getChannel(); mp4file.writeContainer(fc); fc.close();
|
2. 流式合并
【MediaMuxer】
Android 4.3 提供的一套用于将视频(H.264、H.263)和音频(AAC、ARM-NB、ARM-WB)合成的为mp4格式的一套简单好用的API
C++开源库 【mp4v2】 ,网上多数人用的是【2.0.0版本】
mp4v2为操作mp4文件提供了一套强大的API。mp4v2提供了一套基于ISO/IEC 14496-1:2001
标准的mp4格式文件的创建和修改的API,这个媒体容器被广泛的使用,具有很好的兼容性。
不过对于我们Android开发来说有点麻烦,还需要自己做NDK编译和二次封装。