Saya mencoba mengaburkan sebagian video menggunakan FFmpeg (khusus untuk mengaburkan wajah).
Saya telah mencoba menggunakan kombinasi pengeditan waktu dan berbagai filter blur, tetapi saya tidak dapat menemukan cara untuk mengaburkan hanya sebagian dari video.
Dimungkinkan untuk menerapkan pengaburan temporal dan spasial ke segmen / bagian - dengan asumsi area yang ingin Anda blur adalah lokasi statis.
Gambar anak anjing lab hitam asli.
Menggunakan gambar topeng
Gambar topeng PNG skala abu-abu dan menghasilkan gambar buram.
Anda dapat membuat gambar topeng abu-abu untuk menunjukkan area yang akan buram. Untuk kemudahan penggunaan, ukurannya harus sama dengan gambar atau video yang ingin Anda blur.
Area putih adalah tempat terjadinya blur, tetapi ini dapat dengan mudah dibalik dengan filter negate misalnya:[1:v]negate[mask];[0:v][mask]alphamerge,boxblur=10[alf]...
Anda bisa menggunakan filter geq untuk menghasilkan topeng seperti gradien.
Catatan: Angka offset x dan y dalam overlay ( 60dan 30dalam contoh ini) harus cocok dengan offset pemotongan.
Apa yang dilakukan contoh ini:
Pangkas salinan menjadi ukuran area yang akan dikaburkan. Dalam contoh ini: kotak 200x200 piksel yang 60 piksel ke kanan ( xsumbu) dan 30 piksel ke bawah ( ysumbu) dari sudut kiri atas.
Memburamkan area yang dipangkas.
Overlay area yang kabur menggunakan parameter yang sama xdan ydari filter crop .
Terima kasih banyak atas tanggapan Anda. Itu semua masuk akal. Sebagai catatan, itu juga membuat filter perpecahan masuk akal akhirnya! Juga, mungkinkah melalui ekspresi aritmatika untuk secara dinamis memindahkan kotak kabur di sekitar gambar? Apakah dengan maksud untuk mengaburkan wajah seseorang ketika mereka bergerak secara non-linear?
occvtech
Terima kasih lagi! Saya akan mengambil celah itu. Saya tahu bahwa editor non-linear akan 1000 kali lebih mudah di sini, tetapi saya berharap untuk mengelompokkan beberapa file dan tidak ingin menunggu melalui proses impor / bingkai kunci / ekspor. Terima kasih lagi!
occvtech
1
apakah FFMPEG menawarkan bentuk lain selain kotak, seperti lingkaran?
Sun
@ LordNeckbeard Saya menggunakan cmd dan saya ingin menggunakan Contoh 1 tetapi ketika saya menjalankan kode saya mendapatkan kesalahan iniUnrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
Jim
1
@ Jim Saya perhatikan bahwa perintah contoh saya tidak ada kutipan. Perintah Anda harus terlihat seperti ini:ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
llogan
0
Untuk kasus ketika seseorang tidak menyukai ujung tajam dari kabur, saya membuat skrip yang melapisi berbagai tahapan kabur sehingga ujungnya tidak tajam dan terlihat seperti ini:
Anda dapat mengubah parameter di baris terakhir dan kedua dari belakang, dua parameter terakhir antara tanda quatation adalah path ke video Anda dan output video (dengan asumsi mereka ditempatkan di direktori kerja). Di garis kedua dari belakang:
dua angka pertama menunjukkan ukuran area awal yang akan diterapkan blur maksimum,
dua yang kedua menunjukkan koordinat x dan y,
dua yang ketiga menunjukkan waktu dalam detik ketika blur harus diterapkan,
"25" dalam contoh ini menunjukkan bahwa akan ada 25 kotak yang diterapkan satu sama lain)
"1" berikutnya menunjukkan bahwa kotak yang lebih besar dengan lebih sedikit blur seharusnya hanya satu piksel lebih lebar dari pendahulunya
"1" yang kedua menunjukkan bahwa pengaburan harus bertambah satu hingga maksimal 25 (dari atas)
"30" menunjukkan margin yang dipertimbangkan untuk menerapkan blur, sehingga meningkatkan ini membuat blur lebih menghormati sekitarnya. Meningkatkan nilai ini juga memecahkan kesalahan seperti teksInvalid chroma radius value 21, must be >= 0 and <= 20
Dengan menjalankannya, seseorang harus mendapatkan output seperti berikut (ditulis ke filethat yang dapat dijalankan dan dicetak pada output yang dapat di-copypasted dan dijalankan):
Unrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
Untuk kasus ketika seseorang tidak menyukai ujung tajam dari kabur, saya membuat skrip yang melapisi berbagai tahapan kabur sehingga ujungnya tidak tajam dan terlihat seperti ini:
Alih-alih ini:
Ini adalah skrip python:
Anda dapat mengubah parameter di baris terakhir dan kedua dari belakang, dua parameter terakhir antara tanda quatation adalah path ke video Anda dan output video (dengan asumsi mereka ditempatkan di direktori kerja). Di garis kedua dari belakang:
Invalid chroma radius value 21, must be >= 0 and <= 20
Dengan menjalankannya, seseorang harus mendapatkan output seperti berikut (ditulis ke filethat yang dapat dijalankan dan dicetak pada output yang dapat di-copypasted dan dijalankan):
sumber