[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