O método sane é analisar a leitura do ffmpeg das informações de entrada por duração e, em seguida, fornecer um valor -t
de duration - start time - 50s
.
O método insano é alimentar a entrada duas vezes e usar o filtro de sobreposição:
ffmpeg -ss 2:10 -i demo.mp4 -ss 00:01:20 -i demo.mp4 -filter_complex overlay=shortest=1[v] -map [v] -map 1:a -shortest -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4
A primeira entrada tem um valor ss de hora de início + quantidade de parte final do vídeo a ser cortada.
A segunda entrada tem um valor ss da sua hora de início.
A ideia básica é que o filtro de sobreposição pode terminar quando a entrada mais curta terminar. A primeira entrada é configurada com um valor ss para que a sobreposição termine quando o intervalo do final for atingido.