Я все еще действительно новичок в ffmpeg. Я пытаюсь добиться эффекта кроссфейдера между моими видео. Пока это то, что я сделал:

Сначала я взял оба своих видео и вырезал их.

ffmpeg -ss 00:00:10 -i C.mp4 -to 00:00:20 -c:va copy O1.mp4 
ffmpeg -i D.mp4 -ss 10 -to 20 -c:va copy O2.mp4

После этого я устанавливаю их частоту кадров и масштабирую их

ffmpeg -i O1.mp4 -vf framerate=fps=30 scale=1080:720 Out1.mp4 
ffmpeg -i O2.mp4 -vf framerate=fps=30 scale=1080:720 Out2.mp4 

Вот всплывающие окна моей первой проблемы, я не могу изменить их частоту кадров и масштабировать их одновременно? Я, вероятно, могу, но не знаю как.

Я могу разделить этот процесс так:

ffmpeg -i O1.mp4 -vf framerate=fps=30 tmp1.mp4 
ffmpeg -i tmp1.mp4 -vf scale=1080:720 Out1.mp4 

но я не хочу так много отдельных команд, если это возможно. В любом случае, после масштабирования видео и изменения его частоты кадров, я продолжаю так:

ffmpeg -i O1.mp4 -i O2.mp4 -filter_complex "[1]format=yuva444p,fade=t=in:st=0:d=2:alpha=1,setpts=PTS-STARTPTS+8/TB[va1];[0][va1]overlay[outv]" -map [outv] -crf 10 ZZZVid.mp4 

Я взял это отсюда: ссылка на StackExchange. Теперь я могу добавить эффект кроссфейдера в мои видео, но теперь мое видео короче. Это 18 секунд вместо 20 секунд из-за перекрестного затухания. Поэтому мой вопрос заключается в том, как я могу изменить продолжительность моего выходного видео, потому что мне нужно изменить его на 18 секунд.

У меня есть еще много вопросов и надеюсь, что кто-то может помочь мне с ними, это вопрос новичка.

Я вижу, как люди разделяют строки с \, чтобы их код выглядел лучше, но когда я делаю это и вставляю его в командную строку, я получаю ошибки. Могу ли я сделать этот процесс короче? Спасибо за любую помощь.

0