ffmpeg drawtext filter - buat latar belakang transparan dengan teks


11

Saat ini saya bekerja dengan drawtextfilter. Sejauh ini saya hanya berhasil dengan drawtextkonfigurasi opsi untuk menggunakan font yang tepat dan menempatkan teks di tengah secara horizontal. Bagaimana saya bisa drawtextmenampilkan teks pada video seperti yang ditunjukkan di bawah ini?

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"

Jawaban:


21

Gunakan drawboxuntuk kotak, dan drawtextuntuk teks.

Kumbang merah

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4: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
  • drawtextmemiliki boxopsi, tetapi sejauh yang saya tahu itu tidak bisa lebar sewenang-wenang dan relatif terhadap ukuran teks, jadi itu sebabnya drawboxdigunakan sebagai gantinya.

  • The formatfilter digunakan untuk meningkatkan warna drawboxdaerah; jika tidak, tergantung pada format input dan output Anda, area tersebut dapat terlihat jenuh atau monokrom. The formatFilter kemudian digunakan lagi untuk memastikan bahwa format pixel dari file output kompatibel dengan semua pemain.

  • Audio sedang disalin dalam contoh ini karena Anda mungkin tidak ingin menyandi ulangnya dengan sia-sia.

  • ffmpegPengguna lama harus menggunakan t=maxsebagai gantinya t=fill.


Sempurna, ini di luar ruang lingkup pertanyaan saat ini dan saya mungkin perlu membuat pertanyaan baru. Ada saran tentang cara menambahkan snapchattimer. Sebagai contoh, saya melakukan beberapa pengujian dan ffmpeg mengandung sumber video testsrc yang berisi timer: ffplay -f lavfi -i testsrc. Angka 0 dari pengatur waktu awal memiliki ukuran 29x52 piksel dan posisinya dari sudut kiri atas adalah 256 piksel secara horizontal dan 94 piksel vertikal. Saya dapat memotong area satu digit seperti iniffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student

Saya menambahkan gambar dengan timer ke pertanyaan. Penghitung waktu adalah hitungan mundur berdasarkan durasi video.
Code_Ed_Student

Ya, saya akan membuat pertanyaan baru untuk itu. Anda benar. 30. 29, 28...dll.
Code_Ed_Student


1
Hebat dan Anda benar, hal itu memengaruhi kotak
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: boxcolor=black@0.4: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4


ini bekerja untuk saya tetapi saya menggunakan boxcolor-white@0.9
saber tabatabaee yazdi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.