デスクトップをavconv(別名ffmpeg)で記録し、720pにスケーリングします。
最近スクリプトに追加して、xwininfoでウィンドウを選択できるようにしました。これにより、ウィンドウが明確に記録されます。
ただし、出力形式が2で割り切れない場合、エンコーダーが異常動作し、ビデオを取得できません。
ffmpeg内でこれを修正する方法はあるので、スケール値を設定するためにbashで大量の手動計算を実行する必要はありませんか?
それらが不均一である場合、スケールフィルターに幅/高さを1つ減算/追加させることは可能ですか?(円形?)
これを達成できる元のスケールの後に別のフィルターを適用することは可能ですか?(これにより、入力サイズが不均一でスケーリングのないビデオが丸められます)
#!/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 $@
一部の古いメーリングリストではround()
、フィルターで使用できる関数が提案されていますが、構文が正しくないようです。それが機能する場合scale=round(iw,2):round(ih,2)
、最後に適用されるフィルターはすべての問題を一度に解決します。iw
動作してih
いないようです。
ceil
代わりに使用trunc
します