Untertitel mit ffmpeg in einen RTMP-Stream mit einem mkv mit eingebetteten .ass-Untertiteln brennen
Ich habe mir die Haare ausgezogen und versucht herauszufinden, wie ich das erreichen kann. Ich habe Videodateien, die ich über RTMP mit ffmpeg streame, in die ich eingebettete (?) .Ass-Untertitel brennen möchte. Ich habe es mit bildbasierten Untertiteln gut gemacht, aber .ass war in den letzten Monaten der Fluch meiner Existenz und ich habe gerade aufgegeben. Ich bin sehr neu im Streaming und lerne immer noch, und trotz aller Anleitungen und allem, was ich online gelesen habe, kann ich es einfach nicht schaffen.
Hier ist ein Teil einer Beispieldatei:
Duration: 00:24:37.51, start: 0.000000, bitrate: 1674 kb/s Chapter #0:0: start 0.000000, end 1354.895000 Metadata: title : Main Chapter #0:1: start 0.000000, end 90.000000 Metadata: title : ED Chapter #0:2: start 1354.979000, end 1386.969000 Metadata: title : Preview Stream #0:0(eng): Video: h264 (High), yuv420p, 704x480 [SAR 1:1 DAR 22:15], SAR 10:11 DAR 4:3, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (defaul Stream #0:1(eng): Audio: aac (LC), 44100 Hz, 5.1, fltp (default) Metadata: title : AAC 5.1 Stream #0:2(jpn): Audio: aac (LC), 44100 Hz, 5.1, fltp Metadata: title : AAC 5.1 Stream #0:3(eng): Subtitle: ass (default) Metadata: title : OP/ED Stream #0:4(eng): Subtitle: ass Metadata: title : Full
Ich habe ein Skript, das bereits bildbasierte Untertitel ausführen kann, wenn ich:
-filter_complex "[0:v][0:6]overlay=(W-w)/2:H-h[v]" \ -map "[v]" \ -map 0:2 \
Ich bin dann zu einer vorherigen Vorlage zurückgegangen und habe gefunden:
-vf subtitles="$i":force_style='FontName=DejaVu Sans':force_style='Fontsize=15' \
Das funktioniert aber immer noch nicht. Ich habe versucht, es unmittelbar nach der Eingabe und vor der Ausgabe zu platzieren. Es funktioniert immer noch nichts wie ich gehofft habe und alles was ich bekomme sind Antworten wie diese:
[Parsed_subtitles_0 @ 0x209c1a0] Unable to open [file].mkv [AVFilterGraph @ 0x208e7c0] Error initializing filter 'subtitles' with args '[file].mkv:force_style=FontName=DejaVu
Wenn weitere Informationen benötigt werden, gebe ich sie gerne an. Auch hier bin ich neu und weiß gar nicht, ob ich jetzt die richtigen Informationen gebe ... Dies ist mein letzter Ausweg, da ich versucht habe, Anleitungen zu lesen, aber nichts scheint spezifisch zu sein was ich versuche zu tun Ich habe fast 5 Monate gebraucht, um herauszufinden, wie man bildbasierte Untertitel zum Laufen bringt ... Jede Hilfe wird geschätzt. Vielen Dank.
AKTUALISIEREN
Nachdem ich mich mit den verschiedensten Befehlen herumgeschraubt hatte, begann ich mit dem Entfernen
:force_style='Fontsize=15'
von der Zeile oben. Untertitel werden jetzt im Stream angezeigt, aber ich kann nicht herausfinden, wie der Untertitelstream angezeigt werden soll. Ich habe mit -map versucht, es zu erzwingen, aber bekomme:
Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:2 -> #0:1 (aac (native) -> aac (libfdk_aac)) Stream #0:4 -> #0:2 (ass (native) -> ? (?))
Das habe ich auch versucht, was ich bei einer Suche gefunden habe
-vf subtitles="$i":si=4
anscheinend sollte ich mich für den alternativen Untertitel-Stream entscheiden, was aber nur zu einem Fehler führte
[Parsed_subtitles_0 @ 0x15720c0] Unable to locate subtitle stream in Trigun.S01E01.The.60.Billion.Double.Dollar.Man.mkv [AVFilterGraph @ 0x14f1360] Error initializing filter 'subtitles' with args 'Trigun.S01E01.The.60.Billion.Double.Dollar.Man.mkv:si=4:force_style=FontName=DejaVu Sans'
also ... ja? ein bisschen Fortschritt?
LETZTES UPDATE!
Ich war nahe dran, brauchte jedoch einige Klarstellungen, um dieses Problem zu lösen.
si=
War richtig, aber ich dachte, ich müsste 4 als fünften Stream in der Datei angeben, als ich tatsächlich 1 geben musste, um den zweiten Untertitel-Stream auszuwählen ...
-vf subtitles="$i":si=1:force_style='FontName=DejaVu Sans'
funktioniert einwandfrei und ich habe die richtigen Untertitel direkt in den Stream gebrannt.
Als Referenz verwende ich hier:
ffmpeg -re -i [file].mkv -map 0:v -map 0:2 -vf subtitles="$i":si=1:force_style='FontName=DejaVu Sans' -c:v libx264 -pix_fmt yuv420p -profile:v high -preset veryfast -crf 23 -maxrate 1.5M -bufsize 2.5M -threads 0 -c:a libfdk_aac -ac 2 -af "volume5.5" -f flv -b:v 900k -maxrate 1.5M -bufsize 2M rtmp://[server]/[mountpoint]/[key]
Ich arbeite weiter und stelle nach Bedarf ein. Zum Beispiel wurde die Lautstärke hinzugefügt, weil viele Videos, auf die ich stoße, sehr leisen Ton haben, vielleicht weil ich einen Mehrkanal-Track auf 2 Kanäle herunterkonvertiere. Trotzdem danke für die Hilfe! Ich hoffe, dass dies jemandem helfen kann, der Schwierigkeiten hat, dies selbst herauszufinden.
0 Antworten auf die Frage
Verwandte Probleme
-
3
Windows Media Center (Vista): Add-On oder Software zum Schneiden von TV-Aufnahmen?
-
3
Videobearbeitung mit ATI-Karten
-
1
VirtualDub für Linux
-
2
Wie viel Datenträgerverbrauch verwenden RAW-Videos?
-
1
Java Apps im Browser blinken / reißen beim Scrollen - warum?
-
3
Wiedergabe von Video-Rips mit Windows Media Center
-
5
Wie kann ich Internetfilme (Hulu usw.) am besten auf meinem Fernseher ansehen?
-
4
Eingebettetes Flash-Video in MS Word-Dokument (2003 oder 2007)
-
10
Erzwingen Sie die native Auflösung für den Nicht-PnP-Monitor in Windows
-
4
Wie erfahre ich, warum Windows Media Center keinen Film abspielt?