欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Java+ffmpeg 合并两个mp4文件

Java+ffmpeg 合并两个mp4文件

2024/10/24 8:26:12 来源:https://blog.csdn.net/m0_63456808/article/details/139835599  浏览:    关键词:Java+ffmpeg 合并两个mp4文件

使用ffmpeg测试命令

ffmpeg 
-i "E:\Monitor\video_20240617_10.mp4" 
-i "E:\Monitor\video1_20240617_10.mp4" 
-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" 
-map "[v]"
-map "[a]"
-c:v libx264 -c:a aac "E:\Monitor\video_20240617_10.mp4.mp4"

详解

这段FFmpeg命令是用来合并两个视频文件(包括它们的视频流和音频流)成一个新的视频文件。下面是对命令各部分的详细解释:

输入文件指定:

-i "E:\Monitor\video_20240617_10.mp4": 指定了第一个输入视频文件的路径。

-i "E:\Monitor\video1_20240617_10.mp4": 指定了第二个输入视频文件的路径。

Filter Complex: -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]": 这是一个复杂的过滤器链,用于处理输入流。

[0:v] 和 [1:v] 分别表示第一个和第二个输入文件的视频流。

[0:a] 和 [1:a] 分别表示第一个和第二个输入文件的音频流。

concat=n=2:v=1:a=1 配置了concat过滤器,n=2表示有2个输入流被连接,v=1表示输出1个视频流,a=1表示输出1个音频流。

[v] 和 [a] 是输出流的标签,分别代表最终的视频流和音频流。

输出映射:

-map "[v]" 指定使用前面定义的视频输出流[v]。

-map "[a]" 指定使用前面定义的音频输出流[a]。

输出编码与格式:

-c:v libx264 指定视频编码器为libx264,这是一个广泛使用的H.264视频编码器。

-c:a aac 指定音频编码器为AAC,这是一种高质量的音频编码格式。

"E:\Monitor\video_20240617_10.mp4" 是输出文件的路径。

综上,此命令的作用是将两个MP4视频文件的视频和音频流合并成一个单一的MP4文件,使用H.264视频编码和AAC音频编码。

结果

合并成功自动关闭

Java测试代码

/*** 合并视频** @param mp4Output* @param tempFilePath*/public void mergeVideo(String mp4Output, String tempFilePath) {//原文件改名String tempFilePath1 = RenameFileExample(mp4Output);//修改视频1名称为临时文件名称1String mergeCommand = String.format("ffmpeg -i \"%s\" -i \"%s\" -filter_complex \"[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]\" -map \"[v]\" -map \"[a]\" -c:v libx264 -c:a aac \"%s\"",tempFilePath1, tempFilePath, mp4Output);AtomicReference<Process> process = null;executorService.submit(() -> {try {process.set(Runtime.getRuntime().exec(mergeCommand));//删除两个临时文件deleteFileExample(tempFilePath1);deleteFileExample(tempFilePath);} catch (IOException e) {e.printStackTrace();}});isTemp = false;}

流程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com