DriveOS 8.5 Videoplayback Hacking

  • Meiner ist FAT32. Und ja, die mp4 Videos müssen wie oben beschrieben in mp3 umbenannt werden.

    BMW i4 M50 Sunset Orange - mit eigentlich allem inkl. M-Technikpaket und 868M nur kein Carbon und AHK;)


    Ansonsten fahre ich noch:
    Jaguar F-Type V8S in schwarz mit Blackpack

    Mazda MX-5 ND - 30th Anniversary Edition

  • Du schiebst jetzt wirklich über den Pi den Stream in eine MP3-Datei auf einem virtuellen USB Stick? Geiler Scheiß. Wie läuft die Auswahl des Streams?


    Wäre auf jeden Fall auch interessiert, habe noch einige Nanos im Schrank liegen, die ich dafür benutzen würde.

    Würde, wenn ich das so umsetze, sogar noch in die andere Richtung ergänzen, nämlich dass die Drive Recorder Recordings auch automatisch bei mir in die Cloud hochgeladen werden nach dem Export :D

  • Im Moment läuft es noch sehr experimentell über die immer gleichen Segmente die der BMW bequemerweise versucht endlos zu loopen.


    Code
    modprobe g_mass_storage file=/usb-drive.img stall=0 removable=1 rw=1
    
    streamlink --stdout https://www.twitch.tv/<streamer> 480p | ffmpeg -i pipe:0 -force_key_frames "expr:gte(t,n_forced*4)" -c:v libx264 -c:a aac -f segment -segment_time 60 -segment_wrap 6 -segment_list list.m3u8 -segment_list_size 6 -segment_format mp4  seg%d.mp3


    Screenshot 2024-01-07 at 00.35.24.png


    Dankenswerterweise liefert der BMW per eSim selbst den Hotspot um dem Raspi Internet bereitzustellen, via diesem Hotspot kommt man auch per SSH auf das PI um den Befehl abzusetzen. Im Moment ist die Herausforderung noch die richtige Segmentlänge zu finden und die Segmente müssen angelegt sein bevor der Stick auf dem BMW zu sehen ist, denn er scanned nur exakt einmal nämlich beim mounten welche Files sich da befinden. Leider erkennt er kein mpegts was das ganze Unterfangen gerade etwas schwerer macht. Auch scheint er eine Art Cache zu haben, manche Segmente cached er einfach obwohl diese schon lange auf dem Stick überschrieben wurden.

    Und yep, deine Idee mit dem Driverecorder ist möglich nachdem das Raspi readwrite gemounted ist.


    Was sehr positiv ist, der Strom vom USB Port reicht um das Raspberry PI4 sicher zu betreiben.

    BMW i4 M50 Sunset Orange - mit eigentlich allem inkl. M-Technikpaket und 868M nur kein Carbon und AHK;)


    Ansonsten fahre ich noch:
    Jaguar F-Type V8S in schwarz mit Blackpack

    Mazda MX-5 ND - 30th Anniversary Edition

  • Hahaha schade, dass "wir" (also du) das nicht vor den Feiertagen gefunden haben, muss erstmal schauen, wann ich dafür Zeit habe. Muss mich dafür dann auch irgendwo an die Straße stellen, weil ich in der TG ja kein Netz habe,

    Das mit dem DriveRecorder möchte ich auf jeden Fall umsetzen, vermutlich einfach per rsync oder sowas. Der Pi kann ja direkt per VPN verbunden sein, dann kann ich auch immer drauf zugreifen.


    Und zum Streaming:

    Livestreams und sowas brauche ich nicht, ich überlege gerade, wie ich den Ordnerinhalt meiner Film- und Serienbibliothek in einer virtuellen Verzeichnisstruktur darstelle, d.h. der Pi würde jede Datei einfach als Symlink auf die "stream.mp3" sozusagen anzeigen und dann über Logs erkennen, welche Datei vom Auto aufgerufen wurde. Anschließend würde er dann eben genau diese Datei in die "stream.mp3" reinbuffern, sodass die abgespielt wird.

    Dadurch könnte ich übers Autodisplay komplett frei aus meiner Bibliothek wählen und bei Aufruf würde er dann die entsprechende Datei runterladen und anzeigen :D


    Eine Frage:

    Kann man den "Stick" über den Pi virtuell aus- und wieder einstecken?

  • Nachtrag:
    ich habe tatsächlich alles da, was ich brauche, hab im Schrank noch eine Packung mit 8 Nanos gefunden, die ich mal für ein Projekt gekauft hatte, das ich nie fertig gemacht habe xD D.h. morgen werde ich mal schauen, wie weit ich komme. Scheint aber noch ein paar Herausforderungen zu geben, auch ohne echtes Streaming.


    Werde das ganze vermutlich direkt in Python machen, da hab ich die besten Möglichkeiten.

  • Eine Frage:

    Kann man den "Stick" über den Pi virtuell aus- und wieder einstecken?

    Klaro unten der Befehl zum ein- und ausstecken, einfach das Module entladen :).


    Code
    modprobe g_mass_storage file=/usb-drive.img stall=0 removable=1 rw=1
    
    modprobe -r g_mass_storage


    Ich hab auch schon überlegt ob ich mir einfach einen Syncer baue ohne Livestream, der quasi während der Fahrt die benötigten Daten runterlädt oder wie bei dir die Symlinks richtig setzt und dann beim Laden sind die Daten bereit.

    BMW i4 M50 Sunset Orange - mit eigentlich allem inkl. M-Technikpaket und 868M nur kein Carbon und AHK;)


    Ansonsten fahre ich noch:
    Jaguar F-Type V8S in schwarz mit Blackpack

    Mazda MX-5 ND - 30th Anniversary Edition

  • Ok, hab das Problem gefunden wieso die Files aufm BMW nicht aktualisiert werden. Das Problem ist das `g_mass_storage` modul und dass es weniger fancy ist als ich dachte. Es ist damit nicht möglich gleichzeitig zu schreiben auf dem Host/Auto und zu lesen. Da es normal wie jedes Filesystem nur einmalig konsistent gemounted werden kann.

    BMW i4 M50 Sunset Orange - mit eigentlich allem inkl. M-Technikpaket und 868M nur kein Carbon und AHK;)


    Ansonsten fahre ich noch:
    Jaguar F-Type V8S in schwarz mit Blackpack

    Mazda MX-5 ND - 30th Anniversary Edition

  • Hab ich mir schon gedacht, das hatte ich gestern schon gefunden. Ist halt leider exklusiver Zugriff, da hilft dann nur umount -> Zugriff -> mount.


    Ist aber ja kein Problem, kann man ja alles beim Hochfahren vor den ersten Mount machen.


    Ich musste leider aufgeben, weil mein Zero W den USB Mode doch nicht kann und einen 4er habe ich nicht mehr rumliegen, alle verbaut. Und die Kosten für den 4er sind mir gerade dann doch für das Experiment zu hoch. Das Geld würde ich dann doch eher in ein Android Device stecken, mit dem ich dann auch alles auf dem Autodisplay kann, inkl. Live Stream.


    Freu mich aber über jedes Update ;)