MotionEye zeigt nach einiger Laufzeit ein komisches Videobild

Q: Das Problem zeigt sich darin, dass zunächst alle Bilder einwandfrei dargestellt werden, nach gewisser Zeit die Bilder der IN5907 sowie der 6014 aber "psychedelisch" werden: es ist eine Vielzahl an Farben, die es unmöglich macht, das Bild zu erkennen.

MotionEye dropped keyframes

A: Das Problem mit dem Video der HD Kameras in MotionEye hängt mit der Übertragung des RTSP Streams zusammen. Solche Bildverzerrungen bzw. Farbverfälschungen entstehen durch den Verlust von Keyframes, welche beim H264 Codec benötigt werden, um eine komprimierte Folge von Frames korrekt darzustellen.

Das RTSP Protokoll sieht vor, dass ein Client die Verbindung entweder über UDP oder TCP herstellen kann. Die gängigen Bibliotheken für RTSP Clients verwenden als Standard die Übertragung per UDP (falls verfügbar). Dabei kann das oben genannte Problem entstehen, da es sich hierbei um ein Protokoll ohne jegliche Fehlerkorrektur oder erneute Übertragung von verlorenen Netzwerk- Paketen handelt.

Die HD Kameras unterstützen sowohl RTSP über UDP als auch TCP, die FHD Kameras nur noch TCP und kein UDP. Welches zu Grunde liegende Protokoll bei RTSP verwendet wird, geht vom Client (also die Software) aus. Im VLC Player dürfte das Bild ebenfalls nach einer gewissen Zeit diese Verhalten zeigen, da man dort in den Einstellungen ebenfalls konfigurieren muss, um RTSP über TCP zu erzwingen.

MotionEye dropped keyframes

In MotionEye kann man dafür, beim Hinzufügen der Kamera über den RTSP Stream - zum Beispiel:

  • rtsp://192.168.2.116/11
  • rtsp://192.168.2.116/12
  • rtsp://192.168.2.116/13

Es wird empfohlen den mittleren Stream /12 zu verwenden

Hinzufügen und das TCP Kamera Preset nutzen.

Eine weitere Möglichkeit ist dies über die Konfigurationsdatei mit rtsp_uses_tcp oder netcam_use_tcp in Motion zu setzen:

Wenn motioneye allerdings über ein Image installiert wurde (motioneyeos), ist die Partition „read-only“ und eine Änderung der motioneye.conf nicht möglich. Um Datei zu ändern, müssen Sie die beiden Partitionen boot und root erneut als beschreibbar mounten:

mount -o remount,rw /
mount -o remount,rw /boot