Я вырезаю части видео, используя select=
и between()
исключения:
ffmpeg -i input.mp4 ^
-vf "select="1-between(t,3,12)-between(t,29,33)-between(t,43,58)",setpts=N/FRAME_RATE/TB" ^
-af "aselect="1-between(t,3,12)-between(t,29,33)-between(t,43,58)",asetpts=N/SR/TB" ^
output.mp4
Как я могу сделать разрезы так, чтобы порции плавное затухание друг в друга вместо жесткого резания?
Я прочитал то немногое о xfade
и попробовал применить xfade=offset=3.5:duration=1
вот так…
-vf "select="1-between(t,3,12)-between(t,29,33)-between(t,43,58)",setpts=N/FRAME_RATE/TB, xfade=offset=4.5:duration=1"
но это дает ошибку
Simple filtergraph 'select="1-between(t,3,12)-between(t,29,33)-between(t,43,58)"
,setpts=N/FRAME_RATE/TB, xfade=offset=4.5:duration=1' was expected to have exact
ly 1 input and 1 output. However, it had >1 input(s) and 1 output(s). Please adj
ust, or use a complex filtergraph (-filter_complex) instead.
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Из того, что я могу понять из ошибки, -vf
или «простому графу фильтров» требуется несколько входных назначений xfade
? Если да, то какому синтаксису или руководству я должен следовать в руководстве по ffmpeg?
Я нахожусь на пределе своего понимания с ffmpeg здесь, поэтому был бы признателен за некоторую помощь.
Спасибо большое.