¿Cómo recortar una película desde la hora de inicio y finalización especificada en ffmpeg al final de los 50 segundos anteriores?

¿Cómo recortar una película desde la hora de inicio y finalización especificada en ffmpeg al final de los 50 segundos anteriores?

Quiero recortar una película, especificar una hora de inicio y finalización, usar ffmpeg. He establecido la hora de inicio, pero quiero establecer una hora de finalización. Finalmente, el final de hace 50 segundos. No sé cómo configurar.

ffmpeg -i demo.mp4 -ss 00:01:20 -acodec libfaac -ab 128k -vcodec mpeg4 -b 800k -mbd 2 -cmp 2 -subcmp 2 new_demo.mp4

Respuesta1

El método sensato es analizar la lectura ffmpeg de la información de entrada durante su duración y luego proporcionar un -tvalor de duration - start time - 50s.

El método loco es alimentar la entrada dos veces y usar el filtro de superposición:

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

La primera entrada tiene un valor ss de tiempo de inicio + cantidad de parte final del video que se cortará.

La segunda entrada tiene un valor ss de su hora de inicio.

La idea básica es que se puede hacer que el filtro de superposición termine cuando finalice la entrada más corta. La primera entrada se establece en un valor ss para que la superposición finalice cuando se alcance el intervalo desde el final.

información relacionada