Quais configurações posso usar para maximizar o desempenho do FFMpeg?

9

Estou tentando fazer uma captura de tela, mas como meu computador é muito antigo e lento, o vídeo que está sendo produzido está lento e o aplicativo que estou tentando gravar fica sem resposta devido ao consumo da CPU. Como não posso atualizar no momento, estou procurando otimizar o que tenho.
Mudei do GNOME para o OpenBox e matei processos desnecessários, etc. Ainda não é bom. Também otimizei o aplicativo que estou gravando, então a única coisa que resta seria o próprio gravador, que é o FFMpeg.

Quais são algumas opções e sinalizadores que podem ser usados ​​para obter o melhor desempenho do FFMpeg? Existem codecs específicos mais fáceis de processar do que outros? Gravarei cerca de 10 a 15 minutos de cada vez, para que algo que não produza arquivos de grandes tamanhos também seja apreciado. Alguma ideia?

Miguel
fonte
5
Como orientação geral: tamanho pequeno, boa qualidade, alta velocidade: escolha dois. Eu gravaria em um formato com menos compactação / taxa de bits mais alta por segundo primeiro e depois compactaria novamente esse arquivo para algo menor a uma velocidade menor que o tempo real.
Ulrich Schwarz
@UlrichSchwarz, Excelente resposta. Eu concordo completamente com ele.

Respostas:

4

Se você tiver um computador antigo, qualquer codec causará problemas para a codificação em tempo real (não apenas para a CPU, mas também para o disco). Sugiro encontrar uma resolução baixa o suficiente para reduzir o tamanho do arquivo. Você deseja ter resoluções personalizadas e taxa de quadros (mpeg1 / mpeg2 não pode ser usado). Resolução e taxa de quadros escolhem com sabedoria.

Aqui estão as minhas sugestões para switches no ffmpeg:

-vcodec libx264 
-r 15
-preset ultrafast
-s 800x600

aqui eu coloquei 800x600 (talvez isso seja muito baixo) e a taxa de quadros é de 15 fps. Para um melhor desempenho, defina a taxa de quadros de 15 a 10 FPS. Na minha experiência, o x264 é um codec rápido e permite resoluções e taxas de quadros personalizadas.

Aqui está a configuração para MPEG2 (que é mais rápido, mas é limitado por resoluções e taxa de quadros)

-r 25 
-s 720x480 
-preset ultrafast 
-vcodec mpeg2video
manuel
fonte
Devo verificar, você pode ser a primeira pessoa na história a se referir à codificação H.264 como "rápida" ... :-P Mas sim, a principal coisa é a predefinição para desativar todas as opções caras.
Derobert
Você está certo! Se 720x480 é bom o suficiente aqui é mais rápido: -r 25 -s 720x480 -preset ultra -vcodec mpeg2video (eu vivo no mundo Full HD e complitly esqueceu resolução alguém uso 800x600 :()
manuel