Melhorando o desempenho do ffmpeg na máquina mais antiga do Windows i5

3

Estou sobrecarregado com o uso do ffmpeg para alguma conversão de vídeo em uma caixa antiga do Windows. Infelizmente, meu aplicativo é interrompido sempre que o ffmpeg está em execução. Algum especialista do ffmpeg pode sugerir alguma dica de desempenho para otimizar o ffmpeg?

Estes são os argumentos que estou fornecendo ao ffmpeg

['-i', _master, '-s', '720x540', '-sws_flags', 'lanczos', '-qscale:v', '1', '-y', _tempMaster]

Na verdade, esqueci 2 operações adicionais

2 CONCATENAR

['-i', "concat:" + _head + "|" + _tempMaster + "|" + _tail, '-c', 'copy', '-y', _concatALL] 

3 MUX COM TRANSCODE ÁUDIO E DE ALTA QUALIDADE

['-i', _audio, '-i', _concatALL, '-vcodec', 'libx264', '-crf', '22', '-vf', 'hqdn3d=1:1:1:1,unsharp=2:2:.7:2:2:0.0', '-y', _finalOutput] 
    
por user2005121 30.04.2013 / 22:31

1 resposta

1

  • A filtragem do Lanczos é bastante cara. Você pode tentar um filtro de imagem diferente? fast_bilinear é bastante rápido em comparação com os lanczos, mas reduz um pouco a qualidade da imagem. Basta substituir lanczos por fast_bilinear e comparar.

  • Muito do que é lento no ffmpeg tem a ver com codecs, e não está claro a partir de suas opções de linha de comando que muxers / demuxers / encoders / decoders / filters que você está usando, além de libswscale. As opções de codec têm muito a ver com a complexidade computacional de um trabalho de vídeo.

  • Verifique se você está executando a versão mais recente do ffmpeg.

  • Tente trocar libav / ffmpeg para ver se isso ajuda. Eles divergiram um pouco ultimamente.

  • Talvez compile uma nova versão do ffmpeg a partir do código-fonte, usando um compilador mais avançado com Link Time Optimization e outras otimizações caras, como o compilador do Visual Studio 2012, ou Clang .

  • Se o sistema operacional for de 64 bits, você poderá obter pelo menos um aumento de velocidade de 5 a 10% de desempenho usando uma compilação de 64 bits do ffmpeg. Os registros adicionais da CPU definitivamente ajudarão com os ciclos apertados de um codificador ou algoritmo de redimensionamento de imagem. Acho que todos os processadores com a marca "i5" até o momento estão habilitados para 64 bits, portanto, instalar um sistema operacional de 64 bits seria uma opção se você estivesse executando 32 bits.

  • Se você sério precisar eliminar milissegundos e ter muito tempo e conhecimento de C, use um gerenciador de perfil para calcular a configuração de depuração do ffmpeg. Veja onde (em quais métodos / filtros / codecs) ele passa a maior parte do tempo. Veja se você pode fazer algumas micro-otimizações, ou talvez reduzir a qualidade em termos de qualidade para acelerar.

por 01.05.2013 / 02:31