Экспортированное видео Ffmpeg x11grab 16:9 искажено

используя свободный ffmepg с ffmpeg версии 3.4.4.

Захват экрана с помощью x11grab с этой настройкой:

videoCommand
.addInput(display)
.addInputOptions('-y', '-f' , 'x11grab' , '-draw_mouse', '0')
.aspect('16:9')
.withSize('768x432')
.withFpsInput(60)
.withFpsOutput(60)
.output(base_path+'/'+process.argv[3]+'.mp4')

Он отлично работает, за исключением того, что видеоизображение искажается, как на втором рисунке ниже.

1 — изображение, которое x11 отображает введите здесь описание изображения

2 — изображение в результирующем видео введите здесь описание изображения

3- Свойства экспортированного видео введите здесь описание изображения

Пытался использовать опцию .keepDAR() для ffmpeg, но получил видео 4:3.

Это журнал ffmpeg: я не знаю, откуда взялось это 640 * 480.

введите здесь описание изображения


person direxit    schedule 31.01.2019    source источник
comment
У вашего экрана такое же соотношение сторон? Попробуйте с autopad().   -  person aergistal    schedule 31.01.2019
comment
@aergistal да 16:9 › 2560x1440 и 1920x1080   -  person direxit    schedule 31.01.2019
comment
Поделитесь полным логом ffmpeg.   -  person Gyan    schedule 31.01.2019
comment
@Gyan Вопрос отредактирован с журналом   -  person direxit    schedule 31.01.2019
comment
@direxit добавить -video_size 1920x1080 к addInputOptions перед -f x11grab. См. вики.   -  person aergistal    schedule 31.01.2019
comment
@aergistal спасибо, нашел это: '-s', '768x432' в качестве параметра ввода   -  person direxit    schedule 31.01.2019


Ответы (1)


в качестве параметра ввода: например: '-s', '768x432'

.addInputOptions('-y', '-f' , 'x11grab' , '-draw_mouse', '0' , '-s' , '768x432')
person direxit    schedule 31.01.2019
comment
Параметр размера x11grab равен -video_size, а не -s. См. документацию. - person llogan; 31.01.2019
comment
@llogan да, это уже было установлено в исходном коде: .withSize('768x432') Псевдонимы: videoSize(), withSize(). - person direxit; 31.01.2019
comment
@llogan прав, withSize устанавливает размер выходного кадра. Это работает, потому что -s сопоставляется с -video_size при использовании для формата ввода, но я думаю, что это устарело. - person aergistal; 31.01.2019
comment
Я не знаю, действительно ли это имеет значение для -video_size против -s: я никогда не изучал. Тем не менее, это может иметь значение с -framerate против -r, и в любом случае рекомендуется использовать задокументированные параметры, поэтому я упоминаю об этом. - person llogan; 31.01.2019
comment
Существуют различия в том, как параметры вызываются/передаются с помощью « fluent ffmpeg » - person direxit; 04.02.2019