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"
Code_Ed_Student
sumber

Jawaban:

21

Gunakan drawboxuntuk kotak, dan drawtextuntuk teks.

Kumbang merah

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
  • 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.

llogan
sumber
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
Pertanyaan baru diposting: video.stackexchange.com/questions/15556/ffmpeg-video-with-timer
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: [email protected]: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4

kostia7alania
sumber
ini bekerja untuk saya tetapi saya menggunakan [email protected]
saber tabatabaee yazdi