如何解决ffmpeg视频合并抱怨参数不匹配

时间:2019-09-21 16:15:53

标签: ffmpeg

我正在尝试将介绍视频连接到主视频。这是我的命令:

// Select the track and the input element.
const video = document.getElementById('my_video_1');
const track = video.querySelector('track');
const stamp = document.getElementById('hidden-tstamp');

// Listen for the cuechange event.
// Check if there are active cues and use them as value.
track.addEventListener('cuechange', event => {
  const currentCues = event.target.track.activeCues;
  if (currentCues.length) {
    stamp.value = currentCues[0].text;
  } else {
    stamp.value = '';
  }
});

在cmd中运行此命令时,出现以下错误:

Scanner input = new Scanner(System.in);
        int nSize;
        System.out.println("Enter size of array to store data..:");
        nSize = input.nextInt();
        String[] names = new String[nSize]; // name array
        int[] phone = new int[nSize]; //phone array
        for (int i = 0; i < nSize; i++) {
            System.out.println("Enter name..:");
            names[i] = input.next();
            System.out.println("Enter phone number..:");
            phone[i] = input.nextInt()`enter code here`;
        }

我不是视频忍者。我知道参数是不同的,但是经过数小时的搜索后我不知道如何解决这个问题。很多在线视频服务将这两个视频连接在一起,并给我一个合理的结果。他们虽然有一个GUI。我需要用代码来完成它,以便我可以使其自动化。

如何解决这些错误?

更新:这是第二个错误:

ffmpeg -i C:\Temp\intro.mp4 -i C:\Temp\main.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" C:\Temp\output.mp4

1 个答案:

答案 0 :(得分:2)

concat过滤器抱怨两个视频之间的分辨率不匹配。将其中一个调整为另一个的大小。

下面,我将介绍视频重新缩放并填充到主视频的大小。

ffmpeg -i C:\Temp\intro.mp4 -i C:\Temp\main.mp4 -filter_complex "[0:v:0]scale=640:640:force_original_aspect_ratio=decrease,pad=640:640:-1:-1,setsar=1[v0];[v0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -vsync vfr C:\Temp\output.mp4

由于concat过滤器的最新变化,建议在连接具有不同帧频的剪辑时使用-vsync vfr