Teil 2 zum Beitrag Linux bricht komplett zusammen - Zusatz zu mein Post Teil 1 zuvor
Teil 2 der Fehler Liste, was nach Reparatur von Message zuvor noch auftauchte beim starten MP4 Videos rote Schrift:
„This video seems to be broken“.
Es wurde alles getestet (Big-Linux Mangaro Based) Pinokio UI
Hier ist die genaue Ursache + Lösung:
──────
Die Ursache des Fehlers
In video_operations.py und info_panel.py wurde
bisher self.instance.media_new(path) aufgerufen.
In der Python-VLC-Bibliothek (python-vlc) ist
media_new folgendermaßen implementiert:
if ':' in mrl and mrl.index(':') > 1:
# Assume it is a URL
m = libvlc_media_new_location(self,
str_to_bytes(mrl))
else:
# Else it should be a local path.
m = libvlc_media_new_path(self,
str_to_bytes(os.path.normpath(mrl)))
Das fatale Problem dabei:
Unter Linux (und bei vielen heruntergeladenen
YouTube- / TikTok- / Handy-Videos) enthalten
Dateinamen völlig legal und sehr häufig einen
Doppelpunkt (:), z. B.:
• Formatangaben: ... (FL-Sound 9:16).mp4
(Doppelpunkt bei 9:16)
• Titel mit Untertiteln: #musicvideo : Song über
Brutale Realität...mp4
• Beschreibungen: ROTE KARTE & AUSRASTER: War DAS
die größte...mp4
Weil in diesen Dateinamen ein Doppelpunkt nach
Zeichen 1 vorkommt, glaubt python-vlc
fälschlicherweise, dass der Dateipfad eine
Internet-Stream-URL (wie RTSP/HTTP) sei, und ruft
libvlc_media_new_location auf. VLC versucht
daraufhin vergeblich, sich mit einem RTSP-Server
auf Port 554 zu verbinden:
main error: cannot resolve port 554 : Name or
service not known
main error: VLC is unable to open the MRL
'/home/franky089/Videos/#musicvideo : ...'
VLC bricht sofort mit State.Ended und Dauer 0 ab.
Nach ca. 1,9 Sekunden schlägt die Prüfroutine
_decode_placeholder_probe in VibePlayer an und
blendet die rote Warnung ein: „This video seems to
be broken“.
──────
Was im Code geändert wurde:
Sichere Media-Erstellung (_create_media):
In VideoPlayer wurde eine neue Methode
_create_media(self, path, *options) eingefügt, die
für lokale Pfade gezielt self.instance.
media_new_path(...) nutzt. Dadurch werden
Doppelpunkte, #, Umlaute etc. im Dateinamen nicht
mehr als URL-Port missverstanden.Aufrufe angepasst:
In display_first_frame, play_video,
safe_switch_video sowie beim Neuladen von
Untertiteln wurde media_new durch _create_media
ersetzt.Vorschau-Player repariert:
In info_panel.py:783-808 wurde die Media-Erstellung
für die Seitenpanel-Vorschau ebenfalls auf
media_new_path umgestellt.Fehlalarm-Schutz bei Pufferung:
In _decode_placeholder_probe wurde ergänzt, dass
Videos im Zustand Opening oder Buffering nicht
vorschnell als defekt deklariert werden.
──────
Testergebnis
Es wurde alles getestet (Big-Linux Mangaro Based) Pinokio UI
• #musicvideo : Song über Brutale Realität...mp4 ➔
Spielt jetzt einwandfrei (State.Playing, 431 Sek.)
• #musicvideo : Burnout, Scanner...mp4 ➔ Spielt
einwandfrei (State.Playing, 490 Sek.)
• ROTE KARTE & AUSRASTER: War DAS...mp4 ➔ Spielt
einwandfrei (State.Playing)
• Wichtige Botschaft... (9:16).mp4 ➔ Spielt
einwandfrei (State.Playing)
