ffmpeg erro: -vf / -af / -filter e -filter_complex não podem ser usados juntos

4

Estou tentando executar o seguinte cmd, que deve adicionar uma marca d'água ao vídeo e também aprimorá-lo.

ffmpeg -i "in.avi" -i "\logo.png" -vf scale=854:-1  -preset 
veryfast -crf 20 -filter_complex overlay=5:5 "ou.mkv"

Eu recebo o seguinte erro.

Filtergraph 'scale=854:-1' was specified through the 
-vf/-af/-filter option for output stream 0:0, which is fed from 
a complex filtergraph. -vf/-af/-filter and -filter_complex 
cannot be used together for the same stream.

Antes de tentar aprimorar (sem a escala -vf = 854: -1), o cmd funcionava como marca d'água.

Como posso conseguir as duas coisas?

O que eu tentei?

  • Movendo o parâmetro -vf antes da entrada, após a entrada, etc.
por cecilli0n 11.07.2014 / 16:22

1 resposta

10

Você pode usar um filtergraph para fazer toda a filtragem:

ffmpeg -i input.avi -i logo.png -filter_complex \
"[0:v]scale=854:-2[scaled]; \
 [scaled][1:v]overlay=5:5[out]" \
-map "[out]" -map 0:a -c:v libx264 -c:a copy output.mkv
  • [0:v] refere-se ao (s) fluxo (s) de vídeo da primeira entrada ( input.avi neste exemplo). [1:v] é o vídeo da segunda entrada ( logo.png neste exemplo).

  • O áudio é copiado a vapor neste exemplo, em vez de ser recodificado; assumindo que sua primeira entrada tenha áudio.

  • A melhor prática é nomear manualmente as entradas e saídas do filtro, como neste exemplo, em vez de confiar em padrões que podem resultar em seleções de fluxo impróprias.

  • -2 no filtro de vídeo de escala é usado em vez de -1 , porque o x264 exige a saída seja divisível por 2 ao emitir para subamostragem de croma 4: 2: 0:

If one of the values is -n with n > 1, the scale filter will also use a value that maintains the aspect ratio of the input image, calculated from the other specified dimension. After that it will, however, make sure that the calculated dimension is divisible by n and adjust the value if necessary.

    
por 12.07.2014 / 06:22

Tags