Am 14.06.2022 um 15:33 schrieb Cecil Westerhof via ffmpeg-user:
Michael Koch <astroelectro...@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

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.

By the way: how should I do it when I want to use five parts of the video?

I haven't tested this, but I think you must build a binary tree:
[0:v][1:v]xfade[a];[2:v][3:v]xfade[b];[a][b]xfade

Michael

_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to