ffmpeg 字幕对齐和位置

问题描述 投票:0回答:5

我正在使用以下方法向视频添加字幕:

ffmpeg -i "imput.mp4" -lavfi "subtitles=subtitles.srt:force_style='OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18'" -crf 1 -c:a copy "output.mp4"

结果是:

No Alignment

我正在使用 Alignment 重新定位它:

ffmpeg -i "imput.mp4" -lavfi "subtitles=subtitles.srt:force_style='Alignment=9,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18'" -crf 1 -c:a copy "output.mp4"

Alignment=9

但是根据 Line-Alignment ASS Tags 文档,只有 9 个位置。 1:左下、2:下中、3:右下、5:左上、6:上中、7:右上、9:左中、10:中中、11:右中

有办法调整这个定位吗?

我希望低音炮左对齐,但位于下方。像这样:

result

ffmpeg subtitle
5个回答
23
投票

我已经测试了每一个对齐方式,并用我的设计技能制作了文档。


21
投票

事实证明,这样做的技巧是添加 Alignment=0。 然后就可以自由使用MarginVMarginL了:

ffmpeg -i "imput.mp4" -lavfi "subtitles=subtitles.srt:force_style='Alignment=0,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18,MarginL=5,MarginV=25'" -crf 1 -c:a copy "output.mp4"

2
投票

事实上你也可以添加一些边距,如“MarginV=20”,以调整字幕的位置

ffmpeg2 -y -i "C:\Users\input.mxf" -pix_fmt yuv422p -vcodec mpeg2video -non_linear_quant 1 -flags +ildct+ilme -top 1 -dc 10 -intra_vlc 1 -qmax 6 -lmin "1*QP2LAMBDA" -vtag xd5c -rc_max_vbv_use 1 -rc_min_vbv_use 1 -g 12 -b:v 50000k -minrate 50000k -maxrate 51000k -bufsize 8000k -color_primaries 1 -color_trc 1 -colorspace 1 -vf "subtitles=subtitles_file.mxf_Subtitle.srt:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20" -acodec copy "output.mxf"


2
投票

我尝试缩小文本大小并转动底部边距:

Alignment=2, Fontsize = 5, MarginV = 1
这对我来说是工作。 像这样:

ffmpeg -i "1.mkv" -lavfi "subtitles=1.srt:force_style='Alignment=2,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize= 12,MarginV=35'" -crf 1 -c:a copy  -vcodec h264_nvenc  "output.mkv"

*

-vcodec h264_nvenc 
是cuda加速器。


0
投票

字幕=

{subtitle_file}:force_style='MarginV=50,OutlineColour=&H100000000,BorderStyle=1,Outline=1,Shadow=1,Fontsize= 14'"

MarginV=50
为我工作!

© www.soinside.com 2019 - 2024. All rights reserved.