Saya merekam desktop saya dengan avconv (alias ffmpeg) dan kemudian skala ke 720p.
Saya baru-baru ini menambahkan ke skrip saya sehingga mereka dapat memilih jendela dengan xwininfo dan itu akan merekam yang khusus.
Namun, jika format output tidak dapat dibagi 2 encoder menjadi aneh dan saya tidak mendapatkan video saya.
Apakah ada cara untuk memperbaiki ini di dalam ffmpeg jadi saya tidak perlu melakukan banyak matematika manual di bash untuk mengatur nilai skala?
Apakah mungkin untuk memiliki filter skala kurangi / tambahkan satu ke lebar / tinggi jika tidak merata? (bulat?)
Apakah mungkin untuk menerapkan filter lain setelah skala asli yang dapat mencapai ini? (Ini akan membuat video yang memiliki ukuran input tidak merata dan tidak ada penskalaan)
#!/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 $@
Beberapa milis lama menyarankan round()
fungsi yang dapat Anda gunakan dalam filter, tetapi sepertinya saya tidak bisa mendapatkan sintaks yang benar. Jika berfungsi, scale=round(iw,2):round(ih,2)
filter yang diterapkan pada akhirnya akan menyelesaikan semua masalah saya sekaligus. iw
dan ih
sepertinya tidak bekerja.
ceil
sebagai gantinyatrunc
untuk mendapatkan nomor pasangan yang lebih tinggi sebagai kasus 16: 9 480pSebenarnya filter bisa mengatasinya secara langsung. Anda hanya perlu meneruskan
-2
alih-alih-1
ke filter: misSaya terkejut menemukan ini dalam laporan bug dari 3 tahun yang lalu .
sumber
Setelah banyak bereksperimen sepertinya filter berikut diterapkan setelah filter skala lain akan membulatkan lebar dan tinggi menjadi 2.
Ini pada dasarnya adalah membagi, bulat, memperbanyak hal, saya hanya tidak memiliki sintaks yang benar.
sumber