FFMPEG -filter_complex drawtext with style like bo

2019-06-05 22:15发布

问题:

I am trying to add text on padded area of my video. There are 4 to 5 things that i am not able to do

  • 1) Draw text styling (bold, italic, underline)
  • 2) Padded area opacity
  • 3) Subtitle vertical alignment. When i give some value to VAlign it sometimes goes out of the window. how to calculate correctly like 50px from top or let say 200px from bottom
  • 4) The subtitle should be full width to video. Right now it is like this.
  • 5) Having a hard time providing OutlineColour value. I have RGBA value so how i can give it to OutlineColour

Here is command i am using

ffmpeg -y -i video-orignal.mp4 -i logo.png -filter_complex "[0] pad=width=iw:height=ih+200:x=0:y=100:color=#f2e6e6@0.99 [v_1];[v_1] drawtext=fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':text='this is watermark': fontsize=24: x=0.23333333333333*main_w: y=0.1325*main_h: fontcolor=#b01e1e: alpha=1,drawtext=fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':text='This is Top fixed text': fontsize=32: x=w-tw-2: y=(100-th)/2: fontcolor=#9e2643: alpha=1,drawtext=fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':text='This is Bottom fixed text': fontsize=32: x=w-tw-2: y=h-50: fontcolor=#9e2643: alpha=1 [v_2];[v_2] subtitles=f=subtitles-final.srt:force_style='FontName=DejaVu Sans Mono,FontSize=26,OutlineColour=&H00f2eded,PrimaryColour=&H000bf282,BorderStyle=3,WrapStyle=3,Bold=1,italic=1,Underline=1,Alignment=3,MarginV=86.4' [v_3];[v_3] [1]overlay=main_w-140:105 [v_4]" -map "[v_4]" -map 0:a video-final.mp4

Split into lines and indented to make it readable:

ffmpeg -y
-i video-orignal.mp4
-i logo.png
-filter_complex
    "[0] pad=width=iw:height=ih+200:x=0:y=100:color=#f2e6e6@0.99 [v_1];
    [v_1]
        drawtext=
            fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':
            text='this is watermark': fontsize=24:
            x=0.23333333333333*main_w: y=0.1325*main_h:
            fontcolor=#b01e1e: alpha=1,
        drawtext=
            fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':
            text='This is Top fixed text': fontsize=32:
            x=w-tw-2: y=(100-th)/2: fontcolor=#9e2643: alpha=1,
        drawtext=
            fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':
            text='This is Bottom fixed text': fontsize=32:
            x=w-tw-2: y=h-50: fontcolor=#9e2643: alpha=1
    [v_2];
    [v_2]
        subtitles=
            f=subtitles-final.srt:
            force_style=
                'FontName=DejaVu Sans Mono,
                FontSize=26,
                OutlineColour=&H00f2eded,
                PrimaryColour=&H000bf282,
                BorderStyle=3,WrapStyle=3,Bold=1,italic=1,Underline=1,
                Alignment=3,MarginV=86.4'
    [v_3];
    [v_3] [1]overlay=main_w-140:105 [v_4]"
-map "[v_4]"
-map 0:a
video-final.mp4