Wie füge ich Untertitel zu Videos zusammen?

9

Wie kann ich Untertitel zu einem Film zusammenführen, um sie auf meinem Android-Fernseher abzuspielen?

Ich habe lange gesucht, aber fast funktioniert das Programm auf Ubuntu nicht mehr oder ich kann das Repository nicht finden. Hier ist eine Antwort, aber ich denke, es wird am 16.04 nicht mehr unterstützt

Varun Kamani
quelle
4
Sie haben wirklich alle 4 Programme zu dieser Frage ausprobiert? FFMPEG funktioniert.
Braiam
Sie können eine Referenz auf diesem Artikel haben: debugpoint.com/2015/08/…
Sunderlandgreen201503

Antworten:

17

Ich benutze Handbremse auf meinem Ubuntu 16.04 großartige Anwendung und sehr einfach zu bedienen. https://launchpad.net/~stebbins/+archive/ubuntu/handbrake-releases

Installation:

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update 
sudo apt-get install handbrake

Wie es funktioniert:

  • Klicken Sie auf Quelle und wählen Sie Film.
  • Klicken Sie auf der Registerkarte Untertitelliste auf Hinzufügen .
  • Vergessen Sie nicht, In Video einbrennen zu aktivieren . Listenpunkt
  • Klicken Sie abschließend auf Start .
Mohamed Slama
quelle
@ user554187 Sie sind willkommen: D
Mohamed Slama
1
@PeterCordes Ich weiß nicht, ob es mkvmergeam 16.04 noch unterstützt wird, aber als ich es am 14.04 ausprobierte, war die Qualität der Handbremse der Originaldatei fehlerhaft (ohne arabische Untertitel). Sie ist die gleiche und kann schnell sein, weil ich sowieso eine SSD habe poste neue Antwort für eine andere Technologie: D
Mohamed Slama
1
mkvmerge erstellt in wenigen Sekunden eine 1-GB-Datei mit schnellen Festplatten. Das Transcodieren dauert mindestens einige Minuten (auf einer schnellen Multi-Core-CPU), und das nur, wenn Sie sich überhaupt nicht um die Dateigröße der Ausgabe kümmern. Wenn Sie eine ausreichend hohe Bitrate verwenden, können Sie den Qualitätsverlust nicht bemerken, aber er ist vorhanden. (Und Ihre neue Datei wird deutlich größer als Ihre ursprüngliche.)
Peter Cordes
3
Ich weiß, dass Sie es auf Ihrem Fernseher abspielen möchten. Mein Punkt war, dass es nicht wirklich mkvmergeso fehlerhaft ist, nur dass die mangelnde Unterstützung Ihres Fernsehgeräts bedeutet, dass das Muxen eines srt wahrscheinlich nicht funktionieren kann. Wenn Sie die Bitmap-Untertitel-Idee ausprobieren möchten, suchen Sie bei Google nach "srt in vobsub konvertieren", wählen Sie ein Programm aus und versuchen Sie, es in ein mkv zu muxen. Überprüfen Sie zuerst, ob es auf Ihrem Ubuntu-Desktop abgespielt wird, und sehen Sie dann, was auf Ihrem Fernseher passiert. Ihre Definition von "gut" unterscheidet sich sehr von meiner; Ich würde es nicht für akzeptabel halten, durch Transcodierung auch nur ein kleines Stück Qualität zu verlieren, insbesondere nicht in eine größere Datei.
Peter Cordes
1
@ PeterCordes Vielen Dank für wertvolle Informationen, die es wert sind, ausprobiert zu werden: D
Mohamed Slama
18

Wenn Ihr Fernseher Filme abspielen kann, deren Untertitel in dieselbe Datei wie das Video gemuxt wurden, bietet das Hinzufügen der Untertitel als Untertitelspur viele Vorteile, anstatt sie in das Video zu brennen.

mkvmerge -o movie_with_subs.mkv   movie.mp4  subs.srt

Dazu gehören alle Titel aus dem mp4 (Video, Audio, Kapitel) und Untertitel aus dem srt als Textuntertitel. Das Kopieren der Datei dauert ungefähr so ​​lange, da das Video nicht dekodiert / neu codiert werden muss.

Ubuntu-Pakete mkvmerge in mkvtoolnix. Es gibt ein mkvtoolnix-guiPaket mit einem GUI-Frontend. Es gibt viele Optionen, mit denen Sie beispielsweise den Untertitelversatz steuern können.

Der Hauptvorteil dabei ist, dass Sie vermeiden, die Qualität durch einen weiteren Decodierungs- / Codierungszyklus mit Generierungsverlust zu beeinträchtigen . Es ist unmöglich, Qualitätsverluste beim Transcodieren zu vermeiden, und es benötigt viel CPU-Zeit, um die Qualität pro Dateigröße einer gut codierten Quelle zu erreichen. (zB x264 mit -preset sloweroder wenn Ihr Player dies unterstützt, x265, wenn Sie bereit sind, viel CPU-Zeit für kleinere Dateien zu verwenden, die immer noch gut aussehen). Wenn Sie sich nicht für die Dateigröße interessieren, weil Sie sie nur auf Ihren Fernseher streamen, kann die Transcodierung mit x264 mit -preset veryfast -crf15schnell ausgeführt werden und minimale Qualität verlieren.

Ein weiterer Vorteil beim Muxen von Subs besteht darin, dass Sie die Subs ein- und ausschalten oder von Ihrem Player an einer anderen Position auf dem Bildschirm anzeigen lassen können.

Sie können sie auch später extrahieren und durchsuchen, wenn Sie versuchen, sich an eine Zeile aus dem Film zu erinnern.

Sie können sie sogar extrahieren, Tippfehler beheben und sie wieder muxen.

Peter Cordes
quelle
Es wäre so perfekt, wenn die Ausgabedatei beim Chromecasting auch die Untertitel hätte. Haben Sie eine Idee, wie Sie Ihre Antwort für Chromecast ausarbeiten können?
JKHA
@JKHA: Ich weiß nichts über Chromecast oder welche Container oder Untertitelformate es unterstützt. Hoffentlich eine Art "weicher" Untertitel (nicht in das Video eingebrannt).
Peter Cordes
Danke für deine Antwort. Ich versuche, "srt in vobsub umzuwandeln", bevor ich muxe, wie Sie über Mohamed Slamas Antwort geschrieben haben. Daumen
drücken,
@JKHA: Also viel Glück. Wenn Sie einen Weg finden, der funktioniert, können Sie eine Antwort auf diese Frage posten.
Peter Cordes
Gut. Ich gab auf und ging, um meine Untertitel zu härten ... Was für eine Überraschung, dass Chromecast keine Untertitel zulässt, das wäre eindeutig eine Verbesserung
JKHA
4

Ich denke, dass MKVToolNix das einfachste und benutzerfreundlichste kostenlose Tool ist, mit dem Sie eine Videodatei mit einer Untertiteldatei zusammenführen können. Installieren Sie es einfach, indem Sie z. B. einen Terminal- / Shell-Befehl ausführen, z.

sudo apt-get install mkvtoolnix mkvtoolnix-gui -y

... und es dann laufen rechten Maustaste auf die Quelldateien Bereich , um Ihre Video - Datei und die Untertitel - Datei (Schritt hinzufügen 1 , bei dem Bild unten), geben Sie den Speicherort des Ziel MKV Videodatei (Schritt 2 ) und Klicken Sie dann auf Multiplexing starten (Schritt 3 ). Erledigt.

Hauptfenster von MVKToolNix

MKVToolNix muxt / multiplext die Untertitel Spur / Stream zusammen mit der Videospur / Stream. Dies bedeutet, dass die ausgegebene MKV-Datei (z. B. /tmp/output.mkv) eine Videodatei ist, in die Untertitel eingebettet sind, und dass Sie die Untertitel ein- und ausschalten können, während ein solches MKV-Video abgespielt wird .

PS: Wenn Ihr Android TV keine MKV-Videodateien wiedergibt, verwenden Sie MX Player , Kodi Player oder VLC Media Player , um MKV-Wiedergabeunterstützung hinzuzufügen.


Was ist, wenn Sie Untertitel im Video "verschmelzen" (fest codieren) möchten, anstatt nur gemuxt / gemultiplext?

In einem solchen Fall ein mühsamer-nicht-lohnende Ansatz besteht aus (1) Ihre Untertitel - Datei in das Umwandeln von SSA - Format, (2) die Bearbeitung der von SSA Style - Linie und dann (3) unter Verwendung von avconv/ ffmpegzu fusionieren / codieren solche stilisierte Untertitel in das Video Spur / Stream (die Zeichen der Untertitel werden dann in Piktogramme oder grafische Symbole umgewandelt, dh Pixel, die nicht nur über die Bilder / Frames des Videos "gelegt" werden, sondern einige dieser Pixel ersetzen ).

So geht's:

  1. Verwenden Sie einen Untertitel-Editor wie GNOME-Untertitel (um sie von der Shell zu installieren, auszuführen sudo apt-get install gnome-subtitles -y), um Ihre Untertiteldatei (z. B. input.srt) in das SSA-Format (z. B. ) zu konvertieren, input.ssaund speichern /tmpSie dann die SSA-Datei in (Sie haben also /tmp/input.ssa).
  2. Verwenden Sie einen einfachen Texteditor wie Gedit (installieren Sie ihn mit dem Shell-Befehl sudo apt-get install gedit -y), um Ihre SSA-Datei zu öffnen, und ersetzen Sie dann die gesamte Style Zeile durch diese:

Style: Default,Arial,16,&H00FFFF,&H00FFFF,&H00FFFF,&H77000000,2,0,3,2,1,2,10,10,10,0,0

StyleSpeichern Sie nach dem Ersetzen der Zeile die SSA-Datei und schließen Sie den Texteditor. In der obigen Konfigurationszeile werden die Untertitel global mit einer 16pt-gelben Arial-Schriftart voreingestellt und hinter den Untertiteln wird ein halbtransparenter schwarzer Hintergrund hinzugefügt (um das Lesen zu erleichtern).

  1. Jetzt ist es Zeit zu verwenden avconv:

    3.1. Installieren Sie die Pakete avconvund, ffmpegindem Sie diesen Shell-Befehl ausführen:

    sudo apt-get install ffmpeg libav-tools -y
    

    3.2. Verschieben Sie Ihre Videodatei (z. B. input.avi) in den /tmpOrdner, um z. B. /tmp/input.aviund zu erhalten/tmp/input.ssa

    3.3. Führen Sie den Shell-Befehl cd /tmpaus, damit die Linux-Shell auf das /tmpVerzeichnis zugreift

    3.4. Codieren Sie die SSA-Untertitel fest in der Videodatei, indem Sie diesen Shell-Befehl ausführen:

    avconv -i input.avi -map 0:0 -map 0:1 -c:v libx264 -aspect 16:9 -q:v 1 -b:v 512k -strict -2 -c:a aac -ac 2 -filter:v subtitles=input.ssa output.mp4
    

Die Ausgabe des obigen Befehls erfolgt /tmp/output.mp4und Sie werden feststellen, dass diese MP4-Videodatei fest codierte Bitmap-Untertitel enthält.

Wenn Sie die Qualität des zusammengeführten / ausgegebenen Videos verringern möchten, um die Datei zu verkleinern, und möglicherweise weniger Zeit auf das Ende des Zusammenführungsprozesses warten möchten, verringern Sie den 512kWert auf einen kleineren Wert (z 256k. B. ). Wenn Sie die Qualität des zusammengeführten / ausgegebenen Videos auf Kosten einer größeren Datei erhöhen und möglicherweise länger auf das Ende des Zusammenführungsprozesses warten möchten, erhöhen Sie 512kden Wert auf einen höheren Wert (z 768k. B. ). Wenn die ursprüngliche (Eingabe-) Videodatei ein Seitenverhältnis von z. B. 4: 2 hat und Sie sie beibehalten möchten, wechseln Sie -aspect 16:9zu -aspect 4:2. Wenn Sie das Seitenverhältnis einer solchen Videodatei nicht kennen, öffnen Sie sie mit einem Media Player und checken Sie sie aus. Wenn Sie es beispielsweise mit VLC öffnen, drücken Sie während der Wiedergabe Ctrl+ iund wählen Sie dann die ausCodecAuf der Registerkarte wird ein solches Seitenverhältnis im angegebenen Feld angezeigt Decoded format.

Yuri Sucupira
quelle