Я записываю свой рабочий стол с помощью avconv (он же ffmpeg), а затем масштабирую его до 720p.
Я недавно добавил в свой сценарий, чтобы они могли выбрать окно с xwininfo, и оно будет записывать это специально.
Однако, если выходной формат не делится на 2, кодер выходит из строя, и я не получаю свое видео.
Есть ли способ исправить это внутри ffmpeg, чтобы мне не пришлось делать кучу ручной математики в bash для установки значений шкалы?
Можно ли заставить фильтр масштаба вычитать / добавлять один к ширине / высоте, если они неравномерны? (круглый?)
Можно ли применить другой фильтр после исходного масштаба, который мог бы достичь этого? (Это будет округлять видео с неравным входным размером и без масштабирования)
#!/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
, кажется, не работают.