DashcamCleaner auf dem Mac (mit M-Prozessoren) – Kennzeichen und Gesichter automatisch pixeln

KI-generiertes Symbolbild

Du möchtest deine Touren, zum Beispiel über deine Dashcam als Videos (egal ob aus dem Auto, vom Motorrad oder Fahrrad) auf TikTok, Instagram, Youtube oder irgendeinem anderen sozialem Netz veröffentlichen, dann ist einiges zu beachten. (Bitte informiere dich grundsätzlich über die generelle Rechtslage in deinem Land vorab.)
Für mich sind bei meinen Touren Menschen und Fahrzeuge (ACHTUNG, keine Rechtsberatung oder nur ansatzweise richtig) eigentlich wie bei einem Foto auf der Straße Beiwerk, sie sind nicht der Mittelpunkt meiner Szenen, das ist die Umgebung, die Ortschaft und sollten nicht zwingend gepixelt werden müssen, aber das sehen viele anderes und das mindeste ist dann, was man wohl machen muss oder sollte, ist Kennzeichen der Kraftfahrzeuge und ggf. auch Gesichter (auch wenn die nicht mehr als Beiwerk sein dürfen) zu verpixeln.

Eine Lösung ist der DashcamCleaner – mit Haken?!

Das kann man manuell in FinalCut Pro**, Adobe Premiere*, CapCut** oder was auch immer, zur reinsten Lebenszeitverschwendung werden. Dafür gibt es Automatisierungs-Tools wie DashcamCleaner – auch für uns Apple Mac-User. Die schlechte Nachricht: Die App wurde offensichtlich vorrangig für Windows-PCs geschrieben. Wenn du sie auf einem aktuellem Mac mit M-Chip (M1, M2, etc.) startest, ignoriert sie, so meine Erfahrung, deine Grafikkarte, quält sich im Schritttempo über die normalen Prozessorkerne und spuckte bei mir am Ende oft Fehler aus. Wenn du nur wegen der Fehler hier bist und die Lösung suchst, kannst du gleich zu „DashcamCleaner auf dem Mac: So machst du das Windows-Tool Apple Silicon (M-Prozessoren) ready“ springen.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Vorab: Wie kriegst du das Dashcam Cleaner Tool überhaupt auf den Mac?

Einfach in den AppStore, wie für FinalCut Pro oder so mit „normalen“, „gewöhnlichen“ Installationsdateien ist nicht. DashcamCleaner ist ein reines Open-Source-Projekt. Das heißt: Du lädst dir im Grunde nur einen Ordner voller Code herunter, der die Programmiersprache Python benötigt. Damit du später nicht jedes Mal das Terminal aufmachen musst, um das Ding zu starten, bauen wir uns am Ende einen simplen Doppelklick-Shortcut.

Dennoch gilt, es ist nicht Anfängerfreundlich und kein einfaches zusammen klicken. Du solltest also ungefähr wissen, was du tust. – Oder zumindest verstehen, wie du (d)ein LLM (umgangssprachlich auch KI oder Chatty genannt) deiner Wahl bedienst und bei Problemen befragen kannst. Am Ende, und das gehört zur Transparenz, ist meine Lösung auch damit mehr oder weniger entstanden.

Also dann beginnen wir mit:

Kurzer Pflicht-Disclaimer

Erstens, Python besorgen

Dann fangen wir mal an. Dein Mac braucht als erstes Python (mindestens in der Version 3.8 zum Zeitpunkt des Erstellens des Artikels), um das Skript lesen zu können. Lade dir die aktuelle Version direkt von der offiziellen Website (python.org/downloads) herunter. Das ist ein „normaler“ Mac-Installer. Einfach die .pkg-Datei doppelt anklicken und durch das Menü klicken. Da kannst du absolut nichts falsch machen.

Zweitens, den Code von DashCam-Cleaner von GitHub laden

Geh danach auf die GitHub. Die Seite des DashcamCleaner-Projekts lautet: https://github.com/tfaehse/DashcamCleaner. Klick dort oben rechts auf den grünen Button mit der Aufschrift „Code“ und wähle „Download ZIP“. Entpacke als nächstes den heruntergeladenen Ordner. Benenne ihn der Einfachheit halber in DashcamCleaner um und schiebe ihn direkt in deinen Mac-Programme-Ordner (Applications).

Einmal kurz ins Terminal als nächstes

Keine Panik, wir müssen nur dieses eine Mal ins Terminal. Das Programm braucht ein paar externe Bausteine, um zu funktionieren. Öffne das Terminal (einfach über die Spotlight-Suche CMD + Leertaste „Terminal“ eingeben) und tippe folgenden Befehl in Terminal ein, um in deinen neuen Ordner zu wechseln:

cd  /Applications/DashcamCleaner

Drück Enter. Jetzt sagst du Python, dass es alle nötigen Software-Pakete aus der mitgelieferten Liste laden soll:

pip3  install  -r  requirements.txt

Lass den Mac kurz rattern, bis er alle Pakete installiert hat. Danach kannst du das Terminal schließen.

Den Doppelklick-Shortcut mit Automator bauen

Als ich das erste mal bemerkt habe, die App lässt sich ja nur über Terminal starten und bedienen, war ich erst mal dezent, ach, ich nenne es mal, genervt. – Damn, ich bin doch kein Nerd! Ich bin Endnutzer und das im End-Level. HAHA – Niemand, okay, okay, kaum jemand hat Lust, jedes Mal Code einzutippen, um eine App zu starten. Wir bauen uns also jetzt unsere eigene Start-Datei. Öffne das Programm Automator (ist auf jedem Mac vorinstalliert, findest du auch einfach über die Spotlight-Suche CMD + Leertaste „Automator“ eingeben und starten).

Wähle im Automator „Neues Dokument“ und klick auf Programm. Such oben links in der Suchleiste nach Shell-Skript ausführen und zieh die Aktion per Drag-and-Drop in das große, leere Feld auf der rechten Seite. Lösche das Wort cat, das dort standardmäßig steht, und füge exakt diesen Code ein:

export  PATH=/opt/homebrew/bin:/usr/local/bin:$PATH
cd  /Applications/DashcamCleaner
python3  gui.py

Kurzer Nerd-Fakt meines LLM, also Gemini Pro: Die erste Zeile ist extrem wichtig, weil der Automator sonst oft nicht weiß, wo Python auf deinem Mac installiert ist, alternativ kannst du auch

export  PATH=/usr/local/bin:$PATH
cd  /Applications/DashcamCleaner
python3  gui.py

als Code einfügen.

Geh abschließend oben in der Menüleiste auf Ablage -> Sichern, nenn das Ganze „DashcamCleaner Start“ und speichere es in deinem Programme-Ordner. Fertig. Ab sofort startest du das Tool einfach per Doppelklick wie jede ganz normale Mac-App.

Jetzt wäre an sich alles schick und feini, oder, oder? – Wie ich bereits in der Einleitung schrieb, Die schlechte Nachricht: Die App wurde offensichtlich vorrangig für Windows-PCs geschrieben. Es kann zu Fehlermeldungen und zusätzlicher Render-Zeit kommen.

DashcamCleaner auf dem Mac: So machst du das Windows-Tool Apple Silicon (M-Prozessoren) ready

Wir ändern das jetzt. Mit ein paar simplen Anpassungen im Code zwingen wir das Skript, unsere Mac-Hardware zu nutzen. Du musst dafür kein IT-Nerd sein – bin ich ja auch nicht, wie gesagt, ich bin der End-Endnutzer. Also wer kopieren und einfügen kann, sollte das hinkriegen. Aber beachte noch mal, was weiter oben im roten Kasten steht! – Wirklich, wirklich!

DashcamCleaner  – Startbildschirm

Also, was haben wir bisher getan. Als erstes holten wir uns oder du dir Phython, wenn es nicht schon auf dem Mac war. Dann kam der DashcamCleaner über die offizielle Anleitung auf GitHub. Nun öffnen wir, eigentlich du ein paar Dateien im simplen TextEdit-Programm von macOS (vielleicht hast du auch eine bessere App zur Bearbeitung von Scripten, dann nutze selbstverständlich deine App, TextEdit hat nur jeder auf seinem Mac).

Zwei wichtige Vorwarnungen zu TextEdit:

TextEdit ist eigentlich für normale Texte gedacht, nicht für Programmcode. Bevor du die Dateien öffnest, müssen wir Apple eine gefährliche Angewohnheit austreiben. Geh in der Menüleiste auf TextEdit -> Einstellungen. Stell sicher, dass bei Format „Reiner Text“ ausgewählt ist. Noch wichtiger: Nimm unten im Bereich „Optionen“ unbedingt die Haken bei „Intelligente Anführungszeichen“ und „Intelligente Bindestriche“ raus. Apple macht sonst beim Einfügen des Codes aus deinen geraden Anführungszeichen automatisch gebogene Text-Anführungszeichen. Das zerstört den Code und das Programm wird danach nicht mehr starten.

Und auch wichtig: Python hasst nichts mehr als falsche Leerzeichen. Wenn du den Code unten reinkopierst, achte penibel darauf, dass die Einrückungen links exakt so aussehen wie hier im Text.

Den Bild/Ton-Fehler fixen

Das Tool hat eigentlich eine funktionierende Mac-Version für die Videoverarbeitung an Bord. Wenn es aber am Ende das Bild mit dem Ton zusammenfügen will, sucht es fälschlicherweise im System nach einer Windows-Datei. – Haben wir ja nicht aufm Mac. Und hier kam mir dann auch wieder Gemini zur Hilfe, als ich nach ewiger Zeit des renderns diese Fehlermeldung serviert bekam:

Fehlermerldung  DashCam  Cleaner  findet  exe  nicht  – kein  Wunder,  ist  ja  auch  ein  Mac.  Hier  die  Hilfe

Du kannst dir nicht vorstellen, wie gefrustet und genervt ich war. Aber wie gesagt, es gibt Hilfe. Öffne die Datei src/qt_wrapper.py in TextEdit und such nach diesem Block:

#  copy  over  audio  stream  from  original  video  to  edited  video
                if  is_installed("ffmpeg"):
                        ffmpeg_exe  =  "ffmpeg"
                else:
                        ffmpeg_exe  =  os.getenv("FFMPEG_BINARY")
                        if  not  ffmpeg_exe:
                                self.alert.emit(
                                        "FFMPEG  could  not  be  found!  Please  make  sure  the  ffmpeg.exe  is  available  under  the  envirnment  variable  'FFMPEG_BINARY'."
                                )
                                return

Markier den kompletten Block inklusive der Fehlermeldung und ersetz ihn durch exakt diese zwei Zeilen:

#  copy  over  audio  stream  from  original  video  to  edited  video
                import  imageio_ffmpeg
                ffmpeg_exe  =  imageio_ffmpeg.get_ffmpeg_exe()

Natürlich musst du das ganze noch speichern. Ich werde das nicht bei jedem Schritt wiederholen, sondern sehe das mal als selbstverständlich an. Ich speichere btw. mit den Tastenkürzeln CMD + S.

Mach’s noch mal!

Öffne danach die Datei src/blurrer.py. Suche dort fast am Ende denselben fehlerhaften Block – er sieht identisch aus, nur der Text der Fehlermeldung unterscheidet sich minimal. Lösche auch dort den kompletten Block und ersetze ihn durch exakt dieselben zwei Zeilen wie oben.

Aber das war es noch nicht. – Ja, gut, es könnte es gewesen sein und du kannst hier aufhören. Aber wir können auch noch den „Turbo“ einschalten, oder zumindest dem ganzen etwas mehr Speed mitgeben. Unser Mac kann mehr, als das Script uns wohl geben möchte, oder kann. Es ist eben im Grunde für Windows geschrieben worden.

Die Grafikpower des Mac nutzen

Daher sucht das Skript standardmäßig nach einer PC-Grafikkarte. Weil es im Mac aber eben keine findet, schiebt es die ganze Rechenarbeit auf den Standardprozessor. Das dauert ewig. Mit einem kleinen Update aktivieren wir die leistungsstarke Architektur deines Apple-Chips. Öffne die Datei src/blurrer.py und suche ganz unten nach dieser Funktion:

def  setup_detector(weights_path:  str):
        """
        Load  YOLOv8  detector  and  update  the  detector  with  this  repo's  weights
        """
        model  =  YOLO(weights_path)
        if  torch.cuda.is_available():
                print(f"Using  {torch.cuda.get_device_name(torch.cuda.current_device())}.")
        else:
                print("Using  CPU.")
        return  model

Lösche diesen Block und setze dafür diesen Code ein:

def  setup_detector(weights_path:  str):
        """
        Load  YOLOv8  detector  and  update  the  detector  with  this  repo's  weights
        """
        model  =  YOLO(weights_path)
        if  torch.cuda.is_available():
                print("Using  CUDA.")
                model.to('cuda')
        elif  hasattr(torch.backends,  'mps')  and  torch.backends.mps.is_available():
                print("Using  Apple  Silicon  (MPS).")
                model.to('mps')
        else:
                print("Using  CPU.")
        return  model

Speichern nicht vergessen.

Stopp, Stopp, Stopp – Den Kopier-Wahnsinn stoppen

Der ursprüngliche Code kopiert jedes einzelne Bild des Videos im Arbeitsspeicher, bevor es verarbeitet wird. Auf einem Mac mit Unified Memory ist das eine dezente Vollkatastrophe und bremst mehr oder weniger alles aus. Wir stellen das System so um, dass die Bilddaten einfach an Ort und Stelle bleiben. Da der Entwickler diesen Code-Block gleich zweimal verbaut hat, müssen wir auch hier in zwei Dateien ran.

Geh zuerst in die Datei src/qt_wrapper.py. Ganz oben in den ersten Zeilen steht:

from  concurrent.futures  import  ProcessPoolExecutor

Tausche das Wort ProcessPoolExecutor gegen ThreadPoolExecutor aus:

from  concurrent.futures  import  ThreadPoolExecutor

Suche dann in derselben Datei ein Stück weiter unten nach dieser Zeile:

blur_executor  =  ProcessPoolExecutor(blur_workers)

Ändere sie ebenfalls entsprechend ab:

blur_executor  =  ThreadPoolExecutor(blur_workers)

Noch mal, Noch mal

Jetzt öffnest du die Datei src/blurrer.py. Mach hier exakt dasselbe. Tausche oben bei den Imports ProcessPoolExecutor gegen ThreadPoolExecutor und passe weiter unten die Zeile mit blur_executor genau wie eben an.

Speichere alle Dateien ab und schließe TextEdit. Beim nächsten Start greift sich das Programm direkt den frischen Code. Deine Renderzeiten sollten sich jetzt massiv verkürzen.

Abschließende Worte

Als erstes, die Datei, die DashcamCleaner dir auswirft, ist keine gewöhnliche .mp4 oder .mov-Datei, sondern mkv. Es kann sogar sein, dass du die App nicht direkt auf deinem Mac öffnen kannst (Quicktime, kann damit nicht umgehen, der VLCPlayer1 schon) oder weiterverarbeiten mit deinem Schnittprogamm. Jage die Datei also ggf. noch einmal zum Beispiel durch HandBrake2 und verwandel dort die Video-Datei in eine .mp4 oder .mov-Datei.

Speed, wir brauchen Speed

DashcamCleaner wird mit den oben genannten Anpassungen auch nicht zum Speed-Champion und du musst damit rechnen, dass selbst kurze Videos eine Weile dauern, bis sie gerendert wurden, aber oft ist das immer noch schneller, als händisch jedes Kennzeichen und jeden Kopf selbst zu blurren. Aber verlasse dich nicht darauf, dass es jedes Kennzeichen und jeder Mensch erkannt wird. Manchmal musst du immer noch händisch ran und ein Kennzeichen oder eine Person in deinem Schnittprogramm „blurren“. Es kann genauso passieren, dass die „App“ etwas als KFZ-Kennzeichen erkennt, oder Mensch, das weder das eine noch das andere ist. – Doch ich glaube, damit kann man am ehesten leben.

360p sofort – 1080p dauert

Was mich stört – und dafür habe ich noch keine Lösung gefunden oder gesehen – wenn man die App startet, startet sie mit 360p_nano_v8. Bis man auf, was ich nutze 1080p_nano_v8 aus dem Dropdown-Menu wählen kann, dauert es eine Weile. – Und eine Weile, meint eine Weile! Das heißt jetzt nicht, dass du minutenlang warten musst, aber es dauert eben einen Augenblick, bis man aus dem Menu etwas anderes als 360p auswählen kann.

Was soll ich denn nun einstellen?

Dann noch zu den Einstellungen. – Ehrlich, ich kann dir meine Einstellungen nennen, aber du musst für dich, deine Einstellungen finden.
Meine sind:

Blur size 25Model 1080p_nano_v8
Feather edges 10Batch size 4
Detection threshold 0.20Blur workers 1
ROl enlargement 1.00Output Quality 7
Blur memory 5

Ob das auch deine sind, also sie zu dir passen? Ich weiß es nicht.

Alternativen und Danksagung

Ein Danke geht an den Youtube-Creator @Berlin Cycling Diary. Auf seinem YT-Kanal fand ich den Hinweis auf seinen Blog und verschiedene App bzw. Dienstleister, die ein Verpixeln bzw. Blurren von KFZ-Kennzeichen und Personen ermöglicht. In seinem Blogpost www.berlincyclingdiary.de/blog/so-pixelst-du-gesichter-und-kennzeichen-in-videos/ findest du nicht nur weitere Hinweise zum „DashcamCleaner“, sondern auch weitere paid, als auch kostenlose Alternativen.

Hast du Anmerkungen, Anregungen, Verbesserungen, auch für andere User, die vielleicht DashcamCleaner nutzen möchten? Schreibe sie einfach in die Kommentare.

Danke fürs Lesen,
Euer

Autogramm  von  HoernRockz


Hinweis: Für die Recherche/Teile dieses Artikels wurde KI eingesetzt

  1. Den Link zum Download habe ich aus der Wikipedia ↩︎
  2. Download-Link aus der Wikipedia ↩︎

Kommentar verfassen