Posso de alguma forma combinar esses dois comandos em um único?

1

Eu tenho arquivos de vídeo no formato MP4. Eu preciso convertê-los em MP2. No entanto, quando eles excedem um determinado tamanho de arquivo no formato MP2, eu 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 o 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, verifique o tamanho do arquivo. Se for muito grande, vou cortar primeiro o arquivo de vídeo original e depois converter as 'partes' em MP2.

Sou novo no ffmpeg e queria saber se poderia combinar esses dois comandos em um. Mais uma vez, o que eu preciso fazer é converter um arquivo MP4 e cortá-lo. Se eu fizer a conversão primeiro e depois o corte, ou o contrário não importa realmente para mim.

Eu precisarei executar o comando de corte várias vezes, pois eu programaticamente decidirei em quantas 'partes' eu vou cortar o arquivo. O (s) resultado (s) final (ais) precisam estar no MP2, no entanto, independentemente de quantas 'partes' eu acabar.

    
por Robin 01.02.2018 / 14:27

1 resposta

1

Como seu segundo comando está dividindo o tempo, este é o melhor lugar para começar a "mesclar" esses comandos.

Você deve simplesmente poder substituir o -c copy -copyts pelos parâmetros de conversão de codec apropriados do seu primeiro comando. Esses parâmetros basicamente significam "apenas copie o fluxo como está" enquanto os outros parâmetros de tempo estão configurando pontos de início e parada. Como resultado, podemos alterar "copiar o fluxo" para "converter o vídeo" de seu primeiro comando.

Os parâmetros do seu primeiro comando relacionados à conversão de mp4 para mp2 são -codec:v mpeg2video -qscale:v 0 . O codec:v mpeg2video está informando ffmpeg para usar o codificador mpeg2video e qscale sendo 0 significa "melhor qualidade".

De qualquer forma, uma transposição rápida dá a você

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile

    
por 01.02.2018 / 15:53

Tags