ottimizzare FFMPEG live stream THUMBNAIL


4

Dopo aver testato molte possibilità, ho una riga di comando perfetta per la creazione di miniature da uno streaming live:

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

Aggiorna un JPG ogni secondo e il web server HTTP utilizza JPG senza problemi, mostrandolo ai client web.

L'unico problema è: ogni comando utilizza dal 5 al 10% della CPU . Se voglio miniature di 20 canali, la CPU non ha energia per questo. FFmpeg probabilmente decodifica attivamente tutti i frame.

C'è un modo per ottimizzare questo comando e in qualche modo dire a FFmpeg di saltare tutti i frame tra quelli necessari. Ho provato questi filtri:

  1. -vf fps=fps=1
  2. -vf "'select=eq(pict_type,I)'"
  3. utilizzando 1/5o 1/10come FPS

Ma questi non hanno influenzato l'utilizzo della CPU, solo la qualità dell'immagine è peggiore con (2) rispetto al comando originale ( -r 1).

Sto bene con un'anteprima al secondo (o estraendo solo i fotogrammi chiave) e anche un'anteprima per 10 secondi va bene, ma penso che il vero problema sia probabilmente la decodifica H.264.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.