ffmpeg -ss 30 -to 1010 -i part-1.mp4 -vcodec copy -an part-1-trimmed.mp4
ffmpeg -ss 32 -to 5458 -i part-2.mp4 -vcodec copy -an part-2-trimmed.mp4
ffmpeg -ss 22 -to 228 -i part-3.mp4 -vcodec copy -an part-3-trimmed.mp4
ffmpeg -ss 97 -to 3848 -i part-4.mp4 -vcodec copy -an part-4-trimmed.mp4
ffmpeg -ss 32 -to 98 -i part-5.mp4 -vcodec copy -an part-5-trimmed.mp4
ffmpeg -ss 92 -to 378 -i part-6.mp4 -vcodec copy -an part-6-trimmed.mp4
ffmpeg -ss 36 -to 5160 -i part-7.mp4 -vcodec copy -an part-7-trimmed.mp4
ffmpeg -ss 1010 -t 2 -i part-1.mp4 -ss 30 -t 2 -i part-2.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-1-2.mp4
ffmpeg -ss 5458 -t 2 -i part-2.mp4 -ss 20 -t 2 -i part-3.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-2-3.mp4
ffmpeg -ss 228 -t 2 -i part-3.mp4 -ss 95 -t 2 -i part-4.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-3-4.mp4
ffmpeg -ss 3848 -t 2 -i part-4.mp4 -ss 30 -t 2 -i part-5.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-4-5.mp4
ffmpeg -ss 98 -t 2 -i part-5.mp4 -ss 90 -t 2 -i part-6.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-5-6.mp4
ffmpeg -ss 378 -t 2 -i part-6.mp4 -ss 34 -t 2 -i part-7.mp4 -c:v libx265 -x265-params profile=main -pix_fmt yuvj420p -filter_complex "[0][1]xfade=transition=fade:duration=2[output]" -an -map "[output]" transition-6-7.mp4
echo -e "file 'part-1-trimmed.mp4'\nfile 'transition-1-2.mp4'\nfile 'part-2-trimmed.mp4'\nfile 'transition-2-3.mp4'\nfile 'part-3-trimmed.mp4'\nfile 'transition-3-4.mp4'\nfile 'part-4-trimmed.mp4'\nfile 'transition-4-5.mp4'\nfile 'part-5-trimmed.mp4'\nfile 'transition-5-6.mp4'\nfile 'part-6-trimmed.mp4'\nfile 'transition-6-7.mp4'\nfile 'part-7-trimmed.mp4'" > cat-files.txt
ffmpeg -f concat -i cat-files.txt -c copy final.mp4
The -x265-params profile=main -pix_fmt yuvj420p
bit is to match the codec to the other source files I have, however they don't quite match:
source:
Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 3840x1920, 50052 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
generated transition clips:
Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568), yuvj420p(pc, bt709, progressive), 3840x1920, 27685 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
I'm not sure how to get rid of progressive
which is the only real difference I see.