Ffmpeg ile titrek bir kaplama nasıl oluşturulur? [kapalı]


0

Bu videoyu YouTube'da buldum, burada hareketli bir ızgaraya sahip bölünmüş bir ekran var. Ffmpeg kullanarak videodaki gibi hareketli bir bölünmüş ekranın nasıl oluşturulduğunu bilmek istiyorum.

Videoya bağlantı

Bu ulaşmak istediğim şey:

görüntü tanımını buraya girin


Beni yanlış anlıyor gibisin, buradaki video kodunu araştırdım. Benim sorunum bu video gibi png döngüsünü bilmiyorum.

    ffmpeg -i video.mp4 -i nen.png  -filter_complex "overlay=x=0:y='if(gte(t,0), -w+(t)*800, 3)'" out.mp4

örnekleme

Ben denedim: loop -1 and overlay:shortest=1ama başarısız oldu

Bindirmeyi benim için değiştirir misiniz?


3 videodan oluşan bölünmüş bir ekran mı istiyorsunuz? ya da hareketli bölünmüş bir ekran mı istiyorsunuz? ya da kenarlıklı bölünmüş bir ekran mı istiyorsunuz? Her neyse, burada splitscreen kullanmaya başlayın:
Harry

Videodaki gibi hareketli bölünmüş bir ekran istiyorum. Teşekkür ederim. @Harry
Passionato,

Gereksinimlerinizi tanımlamak için sorunuzu düzenlemek isteyebilirsiniz. Tam olarak bunu yapan bir ffmpeg komutu geliştirmek haftalar alacaktır. Videodaki bölünmüş ekranda şunlar gösterilir: 3 video, 2 üstte ve bir altta. Merkez bölme 3 saniye içinde% 5 civarında artar. Kenarlık, özel ancak statik bir görüntüden oluşur ve kenarlıklar yaklaşık% 2 boyutundadır. Videolar yeniden boyutlandırılmaz, ancak orta satır hareket ettiğinde yalnızca etkin alan değişir. Videoda çok daha fazla gereksinim var. Tüm bu gereksinimlerin bir alt kümesiyle sınırlayabilir misiniz?
Harry

Sonra ortadaki bölünmeyi 3 saniyede yaklaşık% 5 yukarı ve aşağı hareket ettirmek istiyorum. Bunu yapabilir misin, @Harry? Ben ffmpeg ile test etmeye çalıştım ve kodun bu şekilde hareket etmesini sağlayacak şekilde katılamadım
Passionato

@Harry Gerçekten haftalar sürmez, ancak sorunun sıfır çaba gösterdiği konusunda hemfikirim. Sadece hareket eden ızgara, videolar arasındaki ayrılma noktası değil. Passionato, bir dahaki sefere bir şey istemek, lütfen daha önce denediklerini göster.
slhck

Yanıtlar:


3

Karmaşık bir filtre kullanmanız gerekir:

ffmpeg -f lavfi -i "\
movie=input-1.mp4,scale=960:540[v1]; \
movie=input-2.mp4,scale=960:540[v2]; \
movie=input-3.mp4,scale=1920:540[v3]; \
[v1][v2]hstack[hstack]; \
[hstack][v3]vstack[stack]; \
movie=grid.png[grid]; \
[stack][grid]overlay=y='5*sin(0.1*n)'[outv]" \
-map "[outv]" \
output.mp4

Bu üç giriş videolar (olduğunu varsayar input-1.mp4yoluyla input-3.mp4vardır), scaled sadece ızgara için doğru boyutlara onları almak için bu örnekte. Daha sonra yatay ve edilir dikey stacked olarak etiketlenmiş bir 1920⨉1080 çıktı video almak için birbirinin üstüne stack.

Şimdi grid.png, boyutu 1920⨉1080 olması gereken şeffaf bir kaplamaya sahipsiniz. Tabii ki bu tabloyu kendiniz bir görüntü düzenleyici ile kendiniz yaratmalısınız.

Bu ızgara overlayyığının üstüne çıkar, ancak ykoordinatları sinüs fonksiyonunun çıktısına göre değişir . Daha önce parametreyi değiştirerek hareketin hızını ayarlayabilirsiniz n(çerçevenin sayısıdır) ve sinfonksiyondan önceki parametreyi değiştirerek genliği ayarlayabilirsiniz .

Elbette, daha rastgele bir hareket istiyorsanız, randomörneğin işlevi kullanarak konumu da değiştirebilirsiniz .


Bu tam olarak referansta olanı yapmaz. Çerçeve yukarı doğru hareket ettiğinde, ortanca akorun altındaki tüm alanlar maskelenmelidir, böylece ilk iki dörtlü videonun hiçbir kısmı akorun altında görünmeyecektir.
Gyan

@Mulvya Ama orada gözüküyorlar: i.stack.imgur.com/9KRZN.png
slhck

Ah, OP “ hareketli bölünmüş ekranı ” istediklerini söylüyor , ancak örnek aslında altta yatan videoları bölmiyor. Kafa karıştırıcı çünkü en yüksek genlik değişkendir.
Gyan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.