Cómo cortar/extraer varias partes de un vídeo rapidamente(sin re-codificar) desde la terminal en Linux con FFmpeg
Tengo un video que tiene por todo 1H15 minutos (una hora con quince minutos, y 18 segundos):
y quiero cortarlo rápido (sin usar Kdenlive, OpenShot, ShotCut pues allí se demoraría ufff), y de la siguiente manera sólo son segundos. Bien, quiero cortarlo de 30 minutos en 30 minutos.
Lo siguiente es lo que debo entende
Interpretación del tiempo:
00:00:00 + 00:30:00 = 30 minutos
00:30:00 + 00:30:00 = 60 minutos o 1 hora
01:00:00 + 00:15:00 = 1H15 (que es el tiempo que tiene el video)
Ilustrar ejecución:
ffmpeg -ss 00:00:00 -t 00:30:00 -i input.avi -vcodec copy -acodec copy output1.avi
ffmpeg -ss 00:30:00 -t 00:30:00 -i input.avi -vcodec copy -acodec copy output2.avi
ffmpeg -ss 01:00:00 -t 00:15:00 -i input.avi -vcodec copy -acodec copy output3.avi
Explicación:
- 1ra. línea de este ejemplo significa que desde cero avanzará 30 minutos guardando ese tiempo como output1.avi
- 2da. línea significa que desde el minuto 30 avanzará 30 minutos para guardar esos 30 minutos como output2.avi Es decir por todo ya ha avanzado 1 hora (tenerlo en cuenta).
- 3ra. línea significa que desde 1 hora (60 minutos o sea 01:00:00) avanzará 15 minutos adelante guardando ese tiempo de 15 minutos como output3.avi
Nota: En mi caso no es necesario tomar en cuenta esos 18 segundos finales por los que no los mencionaré, pero si usted necesita segundos uselos.
Y en la ejecución será así:
ffmpeg -ss 00:00:00 -t 00:30:00 -i "Especial TLV1 N°25 - Oxidante curativo que alcaliniza el cuerpo.mp4" -vcodec copy -acodec copy "Oxidante curativo que alcaliniza el cuerpo - Parte 1.mp4"
ffmpeg -ss 00:30:00 -t 00:30:00 -i "Especial TLV1 N°25 - Oxidante curativo que alcaliniza el cuerpo.mp4" -vcodec copy -acodec copy "Oxidante curativo que alcaliniza el cuerpo - Parte 2.mp4"
ffmpeg -ss 01:00:00 -t 00:15:00 -i "Especial TLV1 N°25 - Oxidante curativo que alcaliniza el cuerpo.mp4" -vcodec copy -acodec copy "Oxidante curativo que alcaliniza el cuerpo - Parte 3.mp4"
00:00:00 + 00:22:00 = 22 minutos
00:22:00 + 00:22:00 = 44 minutos
00:44:00 + 00:10:00 = 54 minutos (que es el tiempo que tiene el video)
ffmpeg -ss 00:00:00 -t 00:22:00 -i "Dióxido de cloro.mp4" -vcodec copy -acodec copy "Dióxido de cloro - Parte 1.mp4"
ffmpeg -ss 00:22:00 -t 00:22:00 -i "Dióxido de cloro.mp4" -vcodec copy -acodec copy "Dióxido de cloro - Parte 2.mp4"
ffmpeg -ss 00:44:00 -t 00:10:00 -i "Dióxido de cloro.mp4" -vcodec copy -acodec copy "Dióxido de cloro - Parte 3.mp4"
software recommendation - What to use to quickly cut Audio/Video - Ask Ubuntu
https://askubuntu.com/a/56044/145772
amigo simplemente indica el tiempo final con la opcion -to asi
ResponderBorrarffmpeg -i input.avi -ss 00:10:00 -to 00:30:00 -vcodec copy -acodec copy output1.avi
esto copia el video del segundo 10 al 30. OJO que el el input debe estar al inicio para que tome en cuenta los tiempos. En la pagina oficial tambien dice que hay que agregar la opcion -avoid_negative_ts 1 para que no resulte en un video con marca de tiempo negativo, asi que queda asi:
ffmpeg -i input.avi -ss 00:10:00 -to 00:30:00 -vcodec copy -acodec copy -avoid_negative_ts 1 output1.avi
o simplemente
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:30:00 -c copy -avoid_negative_ts 1 output.mp4
Ya añadí más explicaciones, gracias por su comentario
Borrar