Zusammenführen von mp4-Videostreams mit Untertiteln zur Verwendung beim Erstellen von DVDs

Angenommen, ich habe zwei Dateien namens foo.mp4und foo.srt. Die mp4-Datei hat keine Untertitel, und ich möchte Untertitel aus der foo.srtDatei hinzufügen.

Das Dienstprogramm mencoderwird in diesem Zusammenhang häufig empfohlen. Ich habe versucht, zum Beispiel:

mencoder foo.mp4 -sub foo.srt -ovc lavc -oac copy -o foo.mpg

Das hat bei mir vorher funktioniert. Hier bekomme ich jedoch

Audio format 0x4134504d is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.

Ich weiß nicht, was das bedeutet. Das Ausführen mediainfodieser Datei liefert die folgenden Informationen für den audioStream.

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 1h 47mn
Bit rate mode                            : Variable
Bit rate                                 : 93.7 Kbps
Maximum bit rate                         : 110 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 71.8 MiB (9%)
Language                                 : English
Encoded date                             : UTC 2014-11-19 03:58:38
Tagged date                              : UTC 2014-11-19 03:58:40

Versuchen

mencoder foo.mp4 -sub foo.srt -ovc lavc -oac pcm -o foo.mpg

funktioniert, erzeugt aber ein qualitativ sichtbar schlechteres Video.

Ich nehme an ffmpeg, könnte auch eine Option sein, aber ich habe nicht herausgefunden, wie man es dazu benutzt.

Ich verwende Debian Wheezy. Die Versionen von mencoderund ffmpeg, die mit Wheezy ausgeliefert werden, sind:

2:1.0~rc4.dfsg1+svn34540-1+deb7u1 (Mencoder)

6:0.8.16-1 (ffmpeg)

Ich habe es jedoch geschafft, eine neuere Version ffmpegvon Unstable zurückzuportieren, nämlich: 7:2.5.1-1.

Welches Ausgabeformat willst du genau? Wie ich sehe, haben Sie den AVI-Container in der Frage verwendet, aber das sagt mir nicht Ihre gewünschten Video- und Audioformate.
@LordNeckbeard Hallo. Das aviwar ein Tippfehler. Die Antwort ist, womit ich letztendlich eine DVD erstellen kann. Dies beinhaltet normalerweise das Erstellen einer DVD-Struktur und dann einer ISO daraus. Der erste Schritt besteht darin, eine Datei aus der ursprünglichen Videodatei mit zu erstellen ffmpeg, und ich gebe dieser mpgaus Gründen, die mir nicht klar sind, eine Erweiterung. Danach wird diese Datei von verarbeitet dvdauthor, um eine Verzeichnisstruktur zu erzeugen, und dann mit genisoimage. Also, ich nehme an, die Antwort lautet, welche Formate auch immer funktionieren.

Antworten (1)

Verwenden Sie den subtitlesFilter, um Hardsubs ("eingebrannte" Untertitel) zu erstellen:

ffmpeg -i input.mp4 -vf subtitles=subs.srt -target pal-dvd output.mpg
  • -target pal-dvdbewirkt, dass die Ausgabe eine Bildrate von 25 und eine Bildgröße von 720 x 576 hat. Wenn Sie stattdessen eine NTSC-Ausgabe für eine Bildrate von 30000/1001 und eine Bildgröße von 720 x 480 wünschen, verwenden Sie -target ntsc-dvd. Verwenden Sie für eine Bildrate von 24000/1001 und eine Bildgröße von 720 x 480 -target film-dvd.

  • Die alte, sogenannte " ffmpeg" Version 0.8.16 im Repo ist eine Fälschung von einem Fork, dem der subtitlesFilter fehlt. Wenn Sie das Original brauchen, können Sie einfach einen statischen Build herunterladen .

  • Ich glaube nicht, dass ich ffmpegdas textbasierte SRT in das bitmapbasierte dvdsub/vobsub konvertieren kann, aber es gibt wahrscheinlich andere Tools, die dies können. Dadurch können Sie Standard-DVD-Untertitel verwenden, die vom Betrachter ein- oder ausgeschaltet werden können.

Danke dir. Das ist sehr umfassend. Ich nehme an, Sie meinen mit "Fälschung" diese unglückliche Gabel? Ich denke, dass "7:2.5.1-1" das Richtige ist, richtig? Würde das Ergebnis -target film-dvdauf einem normalen DVD-Player funktionieren?
@FaheemMitha Ich nehme an, das ist es. Wenn Sie ausführen ffmpeg, erfahren Sie in der ersten Zeile der Konsolenausgabe, wer es entwickelt hat. Wenn es angezeigt FFmpeg Developerswird, ist es das Original.
Auch ist mencodernicht ein geeignetes Werkzeug für eine solche Aufgabe? Es scheint allgemein empfohlen zu werden, solche Dinge im Netz zu tun.
@FaheemMitha Ich glaube, die Entwicklung von mencoderhat im Grunde vor einiger Zeit aufgehört, aber wenn es für Sie funktioniert und Sie es bevorzugen, fahren Sie fort und verwenden Sie es.
Ich würde es sicherlich vorziehen, etwas Unterstütztes zu verwenden, aber ist Mencoder nicht Teil von mplayer? Warum hat die Mencoder-Entwicklung Ihrer Meinung nach aufgehört?
@FaheemMitha Sieht so aus, als hätte es seit 2012 ~14 Commits gegeben mplayer.c. Der letzte Commit war am 20.05.2014. Kein perfektes Messmittel, aber das gibt eine gute Vorstellung von der Aktivität. Anscheinend gab es seit dem 20.05.2014 ~7023 Commits für FFmpeg. Auch kein perfektes Maß, denn das beinhaltet alle Commits für das gesamte Projekt.
Meinst du mencoder.cvielleicht? Ich sehe da keinen mplayer.c. Ich habe mplayer von svn geklont. svn infoergibt "Repository Root: svn://svn.mplayerhq.hu/mplayer". Und mencoder.chat seit Anfang 2013 10 Commits.
@FaheemMitha Ja, das war ein Tippfehler. Hätte sein sollen mencoder.c, aber die Nummern bleiben gleich.
Wir müssen verschiedene Repositories verwenden. Ich habe 2014-05-21als letztes Commit, und es sind definitiv 10 Commits seit Anfang 2013. Aber es spielt keine Rolle – ich verstehe, was du meinst.
@FaheemMitha Gleiches Repository. 10 Commits seit 2013 + 4 weitere seit 2012 = 14.
Oh, Sie sprachen von Commits seit Anfang 2012. Das war mir nicht klar. Dann, ja, 14 Commits seit dem 1. Januar 2012. Und ja, das ist nicht viel Aktivität. Vielleicht ist die Software jetzt ausgereift/stabil. Keine Ahnung.