
Ich erstelle eine Anwendung, um mehrere IP-Kamera-Streams (RTSP) zu lesen und verschiedene Machine-Learning-Algorithmen in Echtzeit darauf auszuführen. Für jeden Kamera-Stream
- Ich starte einen ffmpeg-Prozess, der die RTSP-Streams kontinuierlich in Frames aufteilt und als Bilder (JPEG) speichert. Die Streams verwenden H.264-Kodierung. Ich nehme 1 Frame pro Sekunde als Ausgabe.
- Den Modellen entsprechende Nachrichtenwarteschlangen erhalten die Nachricht mit dem Speicherort der Datei.
- Modelle greifen immer wieder auf die Datei zu und ziehen Schlussfolgerungen
Das Problem, mit dem ich konfrontiert bin, ist die CPU-Auslastung durch den ffmpeg-Decodierungsprozess. Für Echtzeit-Inferenz ohne Frameverlust muss ich meinen Server für jeweils zwei Kamera-Streams um einen Kern aufrüsten. Gibt es eine Optimierung, die ich für ffmpeg übersehen habe?
Ich verwende einen Intel Xeon Gold-Prozessor mit Ubuntu 18.04 OS