Ich habe diese Seite gefunden (ich kann dort nichts kommentieren oder beantworten, also hier ist eine neue Frage):
SRT-Untertitel in Video rendern?
mit dieser Zeile, die gut funktioniert:
ffmpeg -i input.mp4 -filter:v subtitles=subtitle.srt -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Ich benötige folgendes und bekomme es nicht hin:
mencoder könnte eine andere praktikable Möglichkeit sein, dies zu tun.
Verwenden Sie ASS-Untertitel. Gestalten Sie sie in Aegisub . Sie können jeden Buchstaben oder jedes Wort einzeln gestalten oder das gewünschte Styling auf alle Untertitel anwenden. Detaillierte Anweisungen finden Sie in der Dokumentation .
Beispiel-ASS-Datei:
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None
[Aegisub Project Garbage]
Last Style Storage: Default
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,48,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,0,0,0,0,100,100,0,0,1,6,0,8,10,10,20,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Top of canvas. Bigger font size. Thicker stroke.
Sie können das Styling über die Untertitel- force_style
Filteroption in anwenden ffmpeg
. Dies sollte mit jedem Format funktionieren, das der Untertitelfilter akzeptiert.
ffmpeg -i input -vf "subtitles=subs.srt:force_style='Alignment=6,Fontsize=48,Outline=8'" output
In der Beispiel-ASS-Datei finden Sie akzeptierte force_style
Optionen, aber Sie können nicht jeden Buchstaben oder jedes Wort einzeln formatieren, wie Sie es in Aegisub können.
Beachten Sie, dass ScaleX
und ScaleY
-Werte bei Verwendung in ein Faktor und kein Prozentsatz sind, sodass die genauen Werte in diesem Fall (nicht ) force_style
wären .1,1
100,100
Dies kann aufgrund einiger Einschränkungen von libass schwierig sein, aber es ist möglich. Siehe So legen Sie den Hintergrund für Untertitel in ffmpeg fest?
JazzTp
JazzTp
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='Alignment=6,Fontsize=22,Outline=2'" -c:a copy -c:v libx264 -crf 22 -preset slower output_Alignment_6_Fontsize_22_Outline_2___slower.mp4
(Separater Kommentar, weil es sonst zu lang war, die Plattform hat es nicht zugelassen. Ich denke, ich sollte Ihre Antwort "akzeptieren", kann aber noch nicht sehen, wie es geht.)JazzTp
Logan
\a
und\an
Tags).force_style
scheint die Legacy-Positionierung (\a
) zu verwenden, die weniger sinnvoll ist als das aktuellere "Nummernblock"-Positionierungssystem (\an
). Nur die Dokumentation zu-force_style
befindet sich unter den Untertitelfilterdokumenten, auf die ich in der Antwort verlinkt habe, aber die ASS-Tags-Seite hilft.JazzTp
Gyan
JazzTp
ffmpeg -i input.mp4 -vf "subtitles=subs.ass" -c:a copy -c:v libx264 -crf 22 -preset slower output_subsASS_Alignment_8_Font_Arial_55_Outline_5.0___slower.mp4
- Danke @Gyan, ich habe gerade deinen Kommentar gesehen (den ich ehrlich gesagt noch nicht ganz verstehe), als ich hergekommen bin, um diesen hinzuzufügen.JazzTp
ffmpeg -i input.mp4 -vf "scale=1080x720,subtitles=subs.srt:force_style='Alignment=2,Fontsize=22,Outline=2'" -c:a copy -c:v libx264 -crf 22 -preset slower output_1080x720_Alignment_2_Fontsize_22_Outline_2___slower.mp4
Roel van de Paar
Logan