Encontré esta página (no puedo comentar ni responder allí, así que aquí hay una nueva pregunta):
¿Renderizar subtítulos srt a video?
con esta línea que funciona bien:
ffmpeg -i input.mp4 -filter:v subtitles=subtitle.srt -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Necesito lo siguiente y no puedo hacerlo:
mencoder podría ser otra forma viable de hacerlo.
Usa subtítulos ASS. Dales estilo en Aegisub . Puede diseñar cada letra o palabra individualmente, o aplicar el estilo deseado a todos los subtítulos. Consulte la documentación para obtener instrucciones detalladas.
Ejemplo de archivo ASS:
[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.
Puede aplicar estilo a través de la opción de filtro de subtítulos en . Esto debería funcionar con cualquier formato que acepte el filtro de subtítulos.force_style
ffmpeg
ffmpeg -i input -vf "subtitles=subs.srt:force_style='Alignment=6,Fontsize=48,Outline=8'" output
Consulte el archivo ASS de ejemplo para conocer las force_style
opciones aceptadas, pero no le permitirá diseñar cada letra o palabra individualmente como puede hacerlo en Aegisub.
Tenga en cuenta que los valores ScaleX
y cuando se usan en son un factor, no un porcentaje, por lo que los valores precisos serían (no ) en ese caso.ScaleY
force_style
1,1
100,100
Esto puede ser complicado debido a algunas limitaciones de libass, pero es posible. Consulte ¿Cómo configurar el fondo de los subtítulos en ffmpeg?
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
(Comentario separado porque de lo contrario era demasiado largo, la plataforma no lo permitía. Supongo que debería "aceptar" tu respuesta, pero aún no veo cómo hacerlo).JazzTp
llogan
\a
y\an
etiquetas).force_style
parece usar el posicionamiento heredado (\a
) que tiene menos sentido que el sistema de posicionamiento de "teclado numérico" más actual (\an
). Solo la documentación-force_style
está debajo de los documentos de filtro de subtítulos a los que me vinculé en la respuesta, pero la página de Etiquetas ASS ayudará.JazzTp
gian
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
- Gracias @Gyan, de hecho, acabo de ver tu comentario (que, para ser honesto, aún no entiendo del todo) cuando vine aquí para agregar este.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
llogan