filtr tekstowy ffmpeg - stwórz przezroczyste tło z tekstem

11

Obecnie pracuję z drawtextfiltrem. Do tej pory udało mi się tylko z drawtextkonfiguracjami opcji, aby użyć właściwej czcionki i umieścić tekst w środku. Jak mogę drawtextwyświetlić tekst na filmie, jak pokazano poniżej?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"
Code_Ed_Student
źródło

Odpowiedzi:

21

Użyj drawboxdla pola i drawtextdla tekstu.

Czerwony chrząszcz

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:[email protected]:width=iw:height=48:t=fill, \
 drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
 format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4
  • drawtextma boxopcję, ale o ile wiem, nie może być dowolnej szerokości i jest zależna od rozmiaru tekstu, dlatego właśnie drawboxjest używana.

  • formatFiltr jest stosowany w celu poprawy koloru drawboxobszaru; w przeciwnym razie, w zależności od formatu wejściowego i wyjściowego, obszar może wyglądać na nasycony lub monochromatyczny. formatFiltr jest następnie ponownie wykorzystane w celu zapewnienia, że format pikseli z pliku wyjściowego jest kompatybilny ze wszystkimi graczami.

  • Plik audio jest kopiowany strumieniowo w tym przykładzie, ponieważ możesz nie chcieć niepotrzebnie go kodować.

  • Starzy ffmpegużytkownicy będą musieli użyć t=maxzamiast t=fill.

Llogan
źródło
Idealnie, to jest poza zakresem obecnego pytania i może być konieczne utworzenie nowego pytania. Wszelkie sugestie dotyczące dodawania snapchattimera. Na przykład, zrobiłem kilka testów i ffmpeg zawiera źródło wideo testsrc który zawiera timer: ffplay -f lavfi -i testsrc. Cyfra 0 początkowego timera ma rozmiar 29 x 52 pikseli, a jej pozycja od górnego lewego rogu wynosi 256 pikseli w poziomie i 94 pikseli w pionie. Mogę przyciąć obszar jednej cyfry w ten sposóbffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student
Do pytania dodałem obraz z zegarem. Czasomierz jest odliczany na podstawie czasu trwania filmu.
Code_Ed_Student
Tak, stworzę dla niego nowe pytanie. Masz rację. 30. 29, 28...itp.
Code_Ed_Student
Nowe opublikowane pytanie: video.stackexchange.com/questions/15556/ffmpeg-video-with-timer
Code_Ed_Student
1
Świetnie i masz rację, to wpłynęło na pudełko
Code_Ed_Student
1

ffmpeg -i C: \ Users \ Developer_2 \ Videos \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: [email protected]: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4

kostia7 spalania
źródło
to działa dla mnie, ale używam [email protected]
szabla tabatabaee yazdi