我们如何在不使用ffmpeg拉伸的情况下合并两个视频,其中一个是水平分辨率,另一个是垂直分辨率?

时间:2019-04-24 13:04:54

标签: java android ffmpeg android-ffmpeg

我想制作一个合并两个视频的应用程序,其中一个视频具有垂直分辨率,另一视频具有水平分辨率。我设法合并了,但这导致视频拉伸,理想情况下不应该发生。有谁知道这样做吗?谢谢!

command = new String[]{"-y", "-i", video1.mp4, "-i", video2.mp4,"-strict", "experimental", "-filter_complex",
            "[0:v]scale=1920x1080,setdar=4:3[v0];[1:v]scale=1920x1080,setdar=4:3[v1];[v0][0:a][v1][1:a] concat=n=2:v=1:a=1",
            "-ab", "48000", "-ac", "2", "-ar", "22050", "-s", "1920x1080", "-vcodec", "libx264", "-crf", "27", "-q", "4", "-preset", "ultrafast",output.mp4};

2 个答案:

答案 0 :(得分:1)

您需要按比例缩放然后填充。

[0:v]scale=1920x1080:force_original_aspect_ratio=decrease,pad=1920:1080:'(ow-iw)/2':'(oh-ih)/2'[v0];
[1:v]scale=1920x1080:force_original_aspect_ratio=decrease,pad=1920:1080:'(ow-iw)/2':'(oh-ih)/2'[v1];

答案 1 :(得分:0)

在提供填充后使用 setsar=1

例如

[0:v]scale=1920x1080:force_original_aspect_ratio=decrease,pad=1920:1080:'(ow-iw)/2':'(oh-ih)/2,setsar=1'[v0];