Warum erscheinen SRT-Untertitel nicht in meinen MP4-Videos auf iPhones?

Ich verwende videojs auf einer HTML-Seite, um ein Video mit VTT-Untertiteln zu veröffentlichen. Das Problem ist: iPhones spielen das mp4 nicht im videojs-Player ab - es rendert den vollständigen videojs-Player, aber wenn Sie auf die Schaltfläche "Wiedergabe" klicken, wird das mp4 in seinem nativen Player (vermutlich QT-Player) geöffnet. Dies ist ein normales Verhalten für Videos auf iPhones - aber an diesem Punkt verliere ich meine Untertitel, die über CSS in den Videojs-Player eingefügt werden.

Also habe ich die MP4s mit importierten .srt-Dateien durch Handbrake laufen lassen. In meinem lokalen VLC-Player erscheinen die Untertitel. Aber wenn ich dieselben Dateien (MP4 + SRT) in dasselbe Verzeichnis auf meinem Webserver lege, erscheinen die Untertitel nicht auf dem Video in iPhones. Tatsächlich erscheinen die Untertitel – oder irgendeine Untertiteloption – auch nicht in den nativen Playern von Desktop-Firefox, Chrome oder IE 11 (die ein QT-Plug-in für Video verwenden).

Es ist kein Problem der Codierung (verwendetes UTF-8) oder der Serverkonfiguration - wenn ich zwei <tracks>in das videojs- <video>Element einfüge - eine die vtt-Datei, eine die srt-Datei - werden beide zusammen im videojs-Player abgespielt.

Schön, dass du etwas gefunden hast. Fühlen Sie sich frei, es als Antwort zu posten und es als beantwortet zu markieren, wenn es das Problem gelöst hat. Auf diese Weise können wir es als Dankeschön für das Teilen positiv bewerten.

Antworten (1)

Update mit Antwort

Es kann getan werden. Führen Sie Ihre Quelldateien durch Handbrake aus, nachdem Sie die gewünschten Untertiteldateien importiert haben. Dann als Mp4 exportieren. Ich habe gelesen, dass (a) Sie die SRT-Datei/en in denselben Ordner wie die Mp4 auf Ihrem Server legen sollten und (b) die SRT denselben Namen wie die MP4 haben sollte. Aber (a) ist wahrscheinlich falsch (in einem Texteditor können Sie sehen, dass die Untertitel von Handbrake in das mp4 kodiert wurden) und (b) ist definitiv falsch - zwei SRT-Dateien in verschiedenen Sprachen haben offensichtlich unterschiedliche Dateinamen.

Testen ... Auf dem iPhone erschien eine kleine Sprechblase auf der rechten Seite der QT-Player-Steuerleiste, als es mein MP4 lud. Wenn Sie darauf tippen, werden die beiden Optionen für die Untertitelsprache angezeigt. Es hat also funktioniert. Aber es funktionierte nur, weil mein Tester zuerst "Untertitel" in seinem iPhone aktivieren musste:

Settings > General > Accessibility > Subtitles & Captioning > Closed Captions + SDH

Mit anderen Worten, eine zusätzliche Aufgabe für die Benutzer und das Ergebnis sind ohnehin beschissen aussehende Untertitel. Und das alles, weil das iPhone im Gegensatz zu Samsungs und den meisten anderen Handys, auf denen ich getestet habe, den videojs-Player überschreibt und Ihre Videos in Apples eigenem Quicktime-Player abspielt.