
Tenho arquivos de vídeo no formato MP4. Eu preciso convertê-los para MP2. Porém, quando eles ultrapassam um determinado tamanho de arquivo no formato MP2, também preciso cortá-los em arquivos menores.
Para isso, atualmente tenho dois comandos:
Comando de conversão
ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile
Comando de corte (os valores de tempo são apenas para exemplo)
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile
Atualmente, eu converto o arquivo de vídeo, verifico o tamanho do arquivo. Se for muito grande, primeiro cortarei o arquivo de vídeo original e depois converterei as 'partes' para MP2.
Sou novo no ffmpeg e gostaria de saber se poderia combinar esses dois comandos em um. Novamente, o que preciso fazer é converter um arquivo MP4 e cortá-lo. Se eu fizer a conversão primeiro e o corte depois, ou o contrário, não importa muito para mim.
Precisarei executar o comando de corte várias vezes, pois decidirei programaticamente em quantas 'partes' cortarei o arquivo. No entanto, o(s) resultado(s) final(is) precisa(m) estar em MP2, independentemente de quantas “partes” eu tiver.
Responder1
Como seu segundo comando está dividindo o tempo, este é o melhor lugar para começar a "mesclar" esses comandos.
Você deve simplesmente ser capaz de substituir os -c copy -copyts
parâmetros de conversão de codec apropriados em seu primeiro comando. Esses parâmetros significam basicamente "apenas copiar o fluxo como está", enquanto os outros parâmetros de tempo definem os pontos de início e parada. Como resultado, podemos alterar “copiar o stream” para “converter o vídeo” a partir do seu primeiro comando.
Os parâmetros do seu primeiro comando relacionados à conversão de mp4 em mp2 são -codec:v mpeg2video -qscale:v 0
. É codec:v mpeg2video
aconselhável ffmpeg
usar o codificador mpeg2video e qscale
ser 0 significa "melhor qualidade".
De qualquer forma, uma transposição rápida dá-lhe
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile