
Tengo archivos de video en formato MP4. Necesito convertirlos a MP2. Sin embargo, cuando superan un determinado tamaño de archivo en formato MP2, también necesito cortarlos en archivos más pequeños.
Para esto, actualmente tengo dos comandos:
Comando de conversión
ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile
Comando de corte (los valores de tiempo son sólo para el ejemplo)
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile
Actualmente, convierto el archivo de video, verifico el tamaño del archivo. Si es demasiado grande, primero cortaré el archivo de vídeo original y luego convertiré las "partes" a MP2.
Soy nuevo en ffmpeg y me preguntaba si podría combinar estos dos comandos en uno. Nuevamente, lo que necesito hacer es convertir un archivo MP4 y cortarlo. Si hago la conversión primero y el corte después, o al revés, realmente no me importa.
Necesitaré ejecutar el comando de corte varias veces, ya que mediante programación decidiré en cuántas 'partes' cortaré el archivo. Sin embargo, los resultados finales deben estar en MP2, independientemente de cuántas "partes" termine.
Respuesta1
Como su segundo comando divide el tiempo, este es el mejor lugar para comenzar a "fusionar" estos comandos.
Simplemente debería poder reemplazar -c copy -copyts
con los parámetros de conversión de códec apropiados desde su primer comando. Estos parámetros básicamente significan "simplemente copiar la transmisión tal como está", mientras que los otros parámetros de tiempo establecen los puntos de inicio y finalización. Como resultado, podemos cambiar "copiar la transmisión" por "convertir el video" desde su primer comando.
Los parámetros de su primer comando que se relacionan con la conversión de mp4 a mp2 son -codec:v mpeg2video -qscale:v 0
. Es codec:v mpeg2video
revelador ffmpeg
utilizar el codificador de video mpeg2 y qscale
ser 0 significa "mejor calidad".
En cualquier caso, una transposición rápida te da
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile