[FFmpeg-user] Use concat filter with a fade

Michael Koch astroelectronic at t-online.de
Tue Jun 14 17:34:41 EEST 2022


Am 14.06.2022 um 16:30 schrieb Cecil Westerhof via ffmpeg-user:
> Michael Koch <astroelectronic at t-online.de> writes:
>
>> Am 14.06.2022 um 15:33 schrieb Cecil Westerhof via ffmpeg-user:
>>> 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.
>> Audio has its own filter: acrossfade
> This seems to work:
>      xfade="xfade=transition=slideleft:duration=${duration}:offset=${offset};acrossfade=d=${duration}"
>
>
>>> 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.
>> As far as I know this isn't yet implemented.
> That sounds like it is going to be implemented. Or do I read to much
> in this sentence?

I really don't know.

Michael



More information about the ffmpeg-user mailing list