2pass codificação por ffmpeg de uma só vez

1

Eu codifico um arquivo de vídeo usando o ffmpeg como este.

$ ffmpeg -i input.avi -pass 1 -an output.mp4
$ ffmpeg -i input.avi -pass 2 -ab 128k -y output.mp4

Então eu digitando sempre 2 vezes, existe uma maneira de codificar um vídeo por 2 passos de uma só vez?

Altero as opções com frequência e, claro, o nome do arquivo de entrada e saída é diferente a cada vez.

    
por ironsand 01.10.2013 / 03:07

2 respostas

1

Em vez de executá-los como dois comandos separados, você pode executá-los em uma linha de comando da seguinte forma:

$ ffmpeg -i input.avi -pass 1 -an output.mp4 && \
    ffmpeg -i input.avi -pass 2 -ab 128k -y output.mp4

A diferença é a notação && que executará o segundo comando (a segunda passagem) somente se o primeiro comando for bem-sucedido. Eles ainda são duas operações separadas, mas isso permitirá que você execute uma linha de comando contra as duas que você estava tendo que fazer anteriormente.

Além disso, você terá o benefício de executar o 2º passe imediatamente após a conclusão do 1º passe, onde com o seu caminho você teria que esperar essencialmente que o 1º terminasse antes de iniciar o 2º.

    
por 01.10.2013 / 03:26
0

Eu uso o mencoder, mas tenho certeza de que algo semelhante poderia ser feito com o ffmpeg / avconv usando um dispositivo fifo:

$ mkfifo passlog

$ mencoder infile.flv -passlogfile passlog ........... pass=1 &

$ mencoder infile.flv -passlogfile passlog ........... pass=2
    
por 07.07.2017 / 12:21

Tags