是否有任何可用的开源 MP4 多路复用器/编写器 java 项目(用 java 编写的源代码,没有本机代码)?
我将 H.264 和 AAC 原始/基本流存储在单独的文件中。我想混合它们并获取包含音频和视频的 .mp4 视频文件。
提前感谢您的宝贵建议。
是否有任何可用的开源 MP4 多路复用器/编写器 java 项目(用 java 编写的源代码,没有本机代码)?
我将 H.264 和 AAC 原始/基本流存储在单独的文件中。我想混合它们并获取包含音频和视频的 .mp4 视频文件。
提前感谢您的宝贵建议。
使用isoparser库,据我所知,它是唯一可以复用 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();
来自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();
}