Pr-Mex / vanessa-automation

BDD в 1С
https://pr-mex.github.io/vanessa-automation/dev/
BSD 3-Clause "New" or "Revised" License
486 stars 199 forks source link

Запись видео в Linux #2201

Open MaximVSaveliev opened 2 months ago

MaximVSaveliev commented 2 months ago

Добрый день! Не работает запись видео в Linux. В коде прописана следующая команда:

КомандаНачатьЗаписьВидео = ""
+ """" + КомандаЗаписиВидеоВыполненияТестов + """"
+ " -f gdigrab "
+ " -framerate " + Формат(КолКадров, "ЧГ=")
+ " -offset_x " + Формат(0,"ЧН=0; ЧГ=0")
+ " -offset_y " + Формат(0,"ЧН=0; ЧГ=0")
+ " -video_size " + Формат(ПараметрыВидео.ЗаписьВидеоЭкранШирина,"ЧН=0; ЧГ=0") + "x" + Формат(ПараметрыВидео.ЗаписьВидеоЭкранВысота,"ЧН=0; ЧГ=0")
+ " -i desktop "
+ " -preset ultrafast "
+ " -crf 0 "
+ """" + ИмяФайлаВидео + """";

ffmpeg version 5.1.6 При запуске у меня вышла ошибка: Unrecognized option 'offset_x'. Но, проблема не только в этом. Я пишу такой командой: ffmpeg -f x11grab -r 15 -i :1 -vcodec libvpx -threads 4 -y ${CI_PROJECT_DIR}/Logs/screencast.webm Из важного: в Linux в качестве устройства используется x11grab, в качестве экрана у меня :1 (в Интернете чаще используется :0.0, можно получить из переменной окружения DISPLAY, есть нюансы, думаю что в контексте данной задачи значение переменной всегда будет актуальное). Область записи не использую, пишу весь экран, судя по всему, у вас так же. Кодек использую указанный потому что с другими видео не открывалось (в причинах не разбирался), плюс занимает мало места. В данном случае можно отредактировать у себя, но будут проблемы с обновлением. Либо писать видео самому, проблема в том, что попадает много лишнего (начинаю писать перед запуском 1С). Либо доработать здесь: могу обернуть в Если Ванесса.ЭтоLinux Тогда и добавить свой вариант команды для Линукс, DISPLAY получить из ПеременныеСреды().

Pr-Mex commented 2 months ago

@MaximVSaveliev Запись видео в линукс пока не тестировалась. Поэтому что-то может не работать. Если есть возможность сделать, чтобы она работала в линукс - будет очень здорово.