几种框架的比较:
方法一(Fail)
利用MediaMux实现音视频的合成。
效果:可以实现音视频的合并,利用Android原生的VideoView和SurfaceView播放正常,大部分的播放器也播放正常,但是,但是,在上传Youtube就会出现问题:音频不连续,分析主要是上传Youtube时会被再次的压缩,可能在压缩的过程中出现音频的帧率出现问题。
方法二
利用mp4parser实现
mp4parser是一个视频处理的开源工具箱,由于mp4parser里的方法都依靠工具箱里的一些内容,所以需要将这些内容打包成jar包,放到自己的工程里,才能对mp4parser的方法进行调用。
方法三
利用FFmpeg大法
FFmpeg 由于其丰富的 codec 插件,详细的文档说明,并且与其调试复杂量大的编解码代码(是的,用 MediaCodec 实现起来十分啰嗦和繁琐)还是不如调试一行 ffmpeg 命令来的简单。
实现步骤:
1.添加依赖
implementation 'com.googlecode.mp4parser:isoparser:1.1.21'
2.视频裁剪
/**
* 裁剪视频
* @param srcPath 需要裁剪的原视频路径
* @param outPath 裁剪后的视频输出路径
* @param startTimeMs 裁剪的起始时间
* @param endTimeMs 裁剪的结束时间
*/
public static void clip(String srcPath, String outPath, double startTimeMs, double endTimeMs) throws IOException, IllegalArgumentException {
if (TextUtils.isEmpty(srcPath) || TextUtils.isEmpty(outPath)) {
throw new IllegalArgumentException("file path can't be null!!!!");
}
if (!(new File(srcPath).exists())) {
throw new IllegalArgumentException("the source file is not exist!!!!");
}
if (startTimeMs >= endTimeMs) {
throw new IllegalArgumentException("the startTimeMs is larger than endTimeMs!!!!");
}
Movie movie = MovieCreat

本文探讨了三种音视频合成方法:使用MediaMux、mp4parser及FFmpeg。对比了它们在音视频同步、格式支持及合成质量上的表现。详细介绍了mp4parser在视频裁剪与合成的应用,包括实现步骤、遇到的问题及解决方案。
最低0.47元/天 解锁文章
3005

被折叠的 条评论
为什么被折叠?



