[FFmpeg-user] Use concat filter with a fade
Cecil Westerhof
Cecil at decebal.nl
Tue Jun 14 16:33:28 EEST 2022
Michael Koch <astroelectronic at t-online.de> writes:
> Am 14.06.2022 um 13:47 schrieb Cecil Westerhof via ffmpeg-user:
>> Sometimes I have to cut parts out of a video. I now use for this (bash on Debian):
>> ffmpeg -y \
>> -ss ${videoStart} -to ${cutStart} -i ${inputFile} \
>> -ss ${cutEnd} -to ${videoEnd} -i ${inputFile} \
>> -vcodec libx264 \
>> -crf 26 \
>> -acodec libmp3lame -qscale:a 9 \
>> -preset veryfast \
>> -lavfi "concat=n=2:v=1:a=1" \
>> -an ${outputFile}
>>
>> But the cut from one part to another is a bit abrupt. Is there a
>> possibility to smooth it with something like a fade?
>
> you can use the xfade filter. :
> https://www.ffmpeg.org/ffmpeg-all.html#xfade
> https://trac.ffmpeg.org/wiki/Xfade
I am now using:
offset=$((${cutStart} - ${videoStart} - ${duration}))
xfade=xfade=transition=slideleft:duration=${duration}:offset=${offset}
time ffmpeg -y \
-ss ${videoStart} -to ${cutStart} -i ${inputFile} \
-ss ${cutEnd} -to ${videoEnd} -i ${inputFile} \
-vcodec libx264 \
-crf 26 \
-acodec libmp3lame -qscale:a 9 \
-preset veryfast \
-filter_complex ${xfade} \
${outputFile}
But I have a major and minor problem.
The major problem is that I do not have audio from the second part of
the video.
The minor problem is that I have to calculate the offset. It would be
nice if I could use -duration, but that does not work sadly.
By the way: how should I do it when I want to use five parts of the video?
--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof
More information about the ffmpeg-user
mailing list