otimizar o stream ao vivo do FFMPEG THUMBNAIL

3

Depois de testar muitas possibilidades, tenho uma linha de comando perfeita para criar miniaturas a partir de uma transmissão ao vivo:

ffmpeg -i rtmp://srvIp/h264.stream -r 1 -an -updatefirst 1 -y thumbnail.jpg

Ele atualiza um JPG a cada segundo e o servidor web HTTP usa JPG sem problemas, exibindo-o para clientes da Web.

O único problema é: todo comando usa 5 a 10% da CPU . Se eu quiser miniaturas de 20 canais, a CPU não tem energia para isso. O FFmpeg provavelmente decodifica ativamente todos os quadros.

Existe uma maneira de otimizar este comando e de alguma forma dizer ao FFmpeg para pular todos os quadros entre os necessários. Eu tentei este filtros:

  1. -vf fps=fps=1
  2. -vf "'select=eq(pict_type,I)'"
  3. usando 1/5 ou 1/10 como FPS

Mas estes não tiveram influência no uso da CPU, apenas a qualidade da imagem é pior com (2) contra o comando original ( -r 1 ).

Eu estou bem com uma miniatura por segundo (ou extraindo quadros-chave apenas), e uma miniatura por 10 segundos também é ok, mas eu acho que o problema real é provavelmente a decodificação H.264.

    
por Asain Kujovic 06.05.2013 / 19:27

0 respostas