ffmpeg mismo video recorte varias veces

0

Soy totalmente un novato en FFmpeg y cosas de programación, por lo que la pregunta podría ser demasiado estúpida ... Tengo un video y quiero cortarlo en trozos pequeños y renderizar cada uno, así que estoy tratando de usar un bucle FOR :

FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done

Lo que obtuve es: [NULL @ 0000000002624220] No se puede encontrar un formato de salida adecuado para 'outx.avi;' outx.avi ;: Argumento no válido

¿Alguien puede ayudar esto?

Link
fuente

Respuestas:

2

Aparentemente estás usando archivos por lotes de Windows. Aquí, FOR los bucles no tienen una cola ; done, como lo han hecho Bash loops.

Bajo Windows:

FOR ... IN ... DO ...

Bajo Bash:

for ... in ...; do ...; done

Por lo tanto, asegúrese de usar la sintaxis adecuada para su shell.


Tenga en cuenta que simplemente especificando out.avi hará que ffmpeg elija MPEG-4 y MP3 como codecs de video y audio, respectivamente, y su calidad podría ser bastante mala. Lo ideal es especificar los codificadores de video y audio, por ejemplo:

ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4

Leer el Guía de codificación H.264 para más información.

slhck
fuente
Gracias por la respuesta primero! Quité el rastro, luego desapareció el error! Pero parece que todo el archivo se guardará con el mismo nombre "outx.avi". Intenté "outx.avi" porque pensé que se guardaría como out1.avi y luego out2.avi ... pero en realidad no trabajo ... ¿existe de todos modos puedo hacer que se guarden con otro nombre en el bucle for?
Link
¡Cambié el nombre del archivo a out% x.avi y lo arreglé!
Link
Me alegra que lo tengas funcionando. Si esta respuesta resolvió su pregunta, márquela como aceptada con la marca de verificación verde que se encuentra al lado. Gracias.
slhck