ffmpeg / avconv ölçeklendirilmiş çıktı 2'ye bölünebilir


10

Masaüstümü avconv (aka ffmpeg) ile kaydedip 720p olarak ölçeklendiriyorum.

Son zamanlarda betiğime xwininfo ile bir pencere seçebilmeleri için ekledim ve özellikle bunu kaydeder.

Ancak, çıktı biçimi 2 ile bölünemezse, kodlayıcı çıldırır ve videomu alamıyorum.

Ölçek değerleri ayarlamak için bash bir grup manuel matematik yapmak zorunda değilsiniz bu ffmpeg içinde düzeltmek için bir yolu var mı?

Ölçek filtresinin eşit değilse genişlik / yüksekliğe çıkartılması / eklenmesi mümkün müdür? (Yuvarlak?)

Orijinal ölçeğin ardından bunu başarabilecek başka bir filtre uygulamak mümkün müdür? (Bu, düzensiz giriş boyutuna sahip ve ölçeklendirme olmayan videoları yuvarlar)

#!/bin/bash
avconv \
-f x11grab -r $fps -s $capturesize -i :0.0$offset \
-vcodec libx264 \
-vf scale=-1:720 \
-pre:v lossless_ultrafast \
-threads 4 \
-y $@

Bazı eski posta listeleri round(), filtrede kullanabileceğiniz bir işlev önerir , ancak sözdizimini doğru olarak göremiyorum. scale=round(iw,2):round(ih,2)Sonunda uygulanan bir filtre çalışırsa , tüm sorunlarımı aynı anda çözer. iwve ihişe yaramıyor gibi görünüyor.

Yanıtlar:


9

2'ye bölünme bazen tek sayılara neden olduğundan, şöyle olmalıdır:

-vf scale="trunc(oh*a/2)*2:720"

Bu, -1:720sözdizimi ile ne istediğinizi gerçekleştirir (orijinal en boy oranını koru)


Bunun ceilyerine trunc16: 9 480p durumunda daha yüksek bir çift numarası almak için kullanıyorum
Felipe Alcacibar


7

Bir çok denemeden sonra, diğer ölçek filtrelerinin genişliği ve yüksekliği 2'ye yuvarladıktan sonra uygulanan aşağıdaki filtre gibi görünüyor.

scale=trunc(in_w/2)*2:trunc(in_h/2)*2

Temelde bir bölünme, yuvarlak, çarpma olayı, sözdizimine sahip değildim.

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.