Bagaimana cara menetapkan waktu mulai untuk filter zoompan yang melapisi latar video di ffmpeg

0

Kode di bawah ini berfungsi dengan baik tetapi saya sepertinya tidak berhasil memulai pembesaran gambar ini pada waktu tertentu. yaitu saya ingin zoom menjadi efektif pada 5 detik tidak segera ketika video latar belakang dimulai.

ffmpeg  -i background.avi  -i image.png \
-filter_complex "1:v]scale=8000x4000,setsar=1/1,zoompan=z='min(zoom+0.005,10)':d=125:s=530x680,trim=duration=3[v1];[0:v][v1]overlay=20:20" \
-c:v libx264 output.avi
Snesho
sumber
Saya akan mengatakan Anda perlu menambahkan enable='gte(t,5)'ke opsi, tetapi kemudian mungkin akan melompat pada gambar.
slhck
@lhck ya Anda benar, itulah yang terjadi saya sudah mencobanya
Snesho

Jawaban:

0

Menggunakan

ffmpeg  -i background.avi -loop 1 -i image.png \
  -filter_complex 
       "[1:v]scale=8000x4000,setsar=1/1,zoompan=z='if(gte(in,125),min(pzoom+0.005,10),1)':d=1:s=530x680,
            trim=duration=3[v1];[0:v][v1]overlay=20:20"
  -c:v libx264 output.avi

Karena Anda menerapkan ini pada video, pzoom adalah variabel yang tepat untuk digunakan. dharus diatur ke 1 karena ini mewakili durasi interval efek zoom untuk setiap frame individu . Pastikan untuk menggunakan versi ffmpeg terbaru. Ada bug di versi sebelumnya di mana pzoom tidak berfungsi dengan benar.

Gyan
sumber
Terima kasih atas balasannya @Mulvya. Saya pertama kali mengunduh versi terbaru (3.3.1) sebelum mencoba perintah Anda dan ini adalah kesalahan yang saya dapatkan: "Fungsi tidak dikenal di 't, 5), min (pzoom + 0,005,10), 1)' Kesalahan saat menyaring : Argumen tidak valid. Pesan terakhir diulang 1 kali Gagal menyuntikkan bingkai ke jaringan filter: Argumen tidak valid saat memproses data yang diterjemahkan untuk aliran # 0: 0 "
Snesho
Ups. Kita harus menggunakan dalam jumlah frame, yaitu time x fps. Jawaban yang diedit.
Gyan
Namun kesalahan hilang, gambar tidak memperbesar
Snesho
Tingkatkan durasi trim ke nilai yang lebih besar dari 5
Gyan