我正在开发一个应用程序来捕获视频和下载音频。我可以单独保存这些文件,但找不到将这些文件组合起来制作新的音频视频的方法。
视频文件为 .mp4 格式,音频为 .mp3 格式。它们的长度完全相同。
有什么办法可以合并这些文件吗?我已经尝试过,但找不到合并两个文件的方法。
我也可以用 FFMPEG 来做到这一点,但没有得到任何最好的方法来实现这一点。请帮帮我,我是安卓新手。
I think MP4解析器 https://github.com/sannies/mp4parser图书馆很适合这种情况。我在此链接中找到了以下示例代码,用于将音频和视频合并到单个 mp4 文件中Android 中的视频录制和处理 http://andrey.chernih.me/2014/06/28/video-recording-and-processing-in-android/ .
public class Mp4ParserAudioMuxer implements AudioMuxer {
@Override
public boolean mux(String videoFile, String audioFile, String outputFile) {
Movie video;
try {
video = new MovieCreator().build(videoFile);
} catch (RuntimeException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
Movie audio;
try {
audio = new MovieCreator().build(audioFile);
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (NullPointerException e) {
e.printStackTrace();
return false;
}
Track audioTrack = audio.getTracks().get(0);
video.addTrack(audioTrack);
Container out = new DefaultMp4Builder().build(video);
FileOutputStream fos;
try {
fos = new FileOutputStream(outputFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
}
BufferedWritableFileByteChannel byteBufferByteChannel =
new BufferedWritableFileByteChannel(fos);
try {
out.writeContainer(byteBufferByteChannel);
byteBufferByteChannel.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
}
如果您想通过 ffmpeg 进行操作,您可以使用静态 ffmpeg 二进制文件 https://github.com/JayH5/android-ffmpeg-cmdline/tree/master/res/raw or 你需要构建它 http://www.roman10.net/how-to-build-ffmpeg-for-android/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)