LINUX.ORG.RU
решено ФорумGames

Скрин-каст.

 , ,


9

3

Нужна нормальная программа ( не SimpleScreenRecorder и ей подобные ) которая может запись игры не влияя на fps в игре. При SSR fps в Guild Wars 2 катастрофически падает. В общем жуть.


если есть карта интела можно жать h264 аппаратно через gstreamer-vaapi, нвидия тож умеет через ffmpeg, amd через gst-omx

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

есть карта интела можно жать h264 аппаратно через gstreamer-vaapi,

Жать или декодировать? Не поделишься готовым pipeline?

Deleted
()
Ответ на: комментарий от Deleted

Сжимать в реальном времени, я пользуюсь таким, тут много зависит от версии libva и gst-vaapi

gst-launch-1.0 -e ximagesrc display-name=:0 use-damage=0 ! multiqueue ! video/x-raw,format=BGRx,framerate=25/1 ! vaapipostproc format=i420 ! video/x-raw,format=I420,framerate=25/1 ! multiqueue ! vaapiencode_h264 dct8x8=true ! vaapiparse_h264 ! multiqueue ! matroskamux name=muxer muxer. ! progressreport name=Rec_time ! filesink location=/file.mkv

Novell-ch ★★★★★
()
Ответ на: комментарий от Deleted

а если

gst-launch-1.0 -e ximagesrc display-name=:0 use-damage=0 ! multiqueue ! video/x-raw,format=BGRx,framerate=25/1 ! videoconvert ! video/x-raw,format=I420,framerate=25/1 ! multiqueue ! vaapiencode_h264 ! vaapiparse_h264 ! multiqueue ! matroskamux name=muxer muxer. ! progressreport name=Rec_time ! filesink location=/file.mkv

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

Это починил, дальше ядро ругается:

[drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[drm:radeon_vce_cs_reloc [radeon]] *ERROR* buffer to small (6914048 / 13824000)

Ядро 4.2, карточка 7950, по идее должно работать.

Khnazile ★★★★★
()
Ответ на: комментарий от Novell-ch

С ресурсами все стало очень хорошо, но пишет дальше одну черноту. vaapi работает, как и в предыдущем варианте. libva 1.5.1, gstreamer1-vaapi 0.5.10

Deleted
()
Ответ на: комментарий от Khnazile

Блин, у меня экран слишком большой xD 3840x1200 не хочет писать. Некоторые окна тоже, но я так понимаю, у них соотношение сторон нехорошее.

Khnazile ★★★★★
()
Ответ на: комментарий от Novell-ch

а можно только половину экрана записать? Например, только с 1 монитора? Я не понял, как захват экрана в этом gst-launch настраивается.
Пробовал разные настройки отсюда: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plu... но ничего не помогает

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

вот так можно скейлить

gst-launch-1.0 -e ximagesrc display-name=:0 use-damage=0 ! multiqueue  ! video/x-raw,format=BGRx,framerate=25/1  ! videoconvert ! videoscale  ! video/x-raw,format=NV12,framerate=25/1,heigth=600,width=800 ! multiqueue ! omxh264enc ! h264parse ! multiqueue ! matroskamux name=muxer muxer. ! progressreport name=Rec_time ! filesink location=/home/rec.mkv
вроде так нельзя, нужно оперировать startx starty endx endy, не помню как gst считает эти параметры, дома где-то валяется мелкая утилита, я ее написал специально что бы она отдавала эти числа для выделяемой мышкой области.

скорее всего

ximagesrc display-name=:0 use-damage=0 startx=0 starty=0 endx=1079 endy=1919

Novell-ch ★★★★★
()
Последнее исправление: Novell-ch (всего исправлений: 1)
Ответ на: комментарий от Novell-ch

start/end у меня не работало, но я нашел, что можно обрезать ненужное этой штукой: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plu...

Не знаю, на сколько оно влияет на производительность...
Еще такой вопрос: как при этом писать звук? С sink monitor пульсы.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

странно что не работает, я с доты карту спокойно на 2 монитор мапил через старт\енд

gst-launch-1.0 -f ximagesrc display-name=:0 use-damage=0 startx=10 starty=812 endx=286 endy=1068 ! multiqueue ! videorate max-rate=10 ! glimagesink

звук да, через пульсу, у меня как-то так

gst-launch-1.0 -e ximagesrc display-name=:0 use-damage=0 ! multiqueue ! video/x-raw,format=BGRx,framerate=25/1 ! vaapipostproc format=i420 ! video/x-raw,format=I420,framerate=25/1 ! multiqueue ! vaapiencode_h264 dct8x8=true ! vaapiparse_h264 ! multiqueue ! matroskamux name=muxer pulsesrc device-name=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! audio/x-raw,channels=2 ! multiqueue ! vorbisenc quality=0.4 ! multiqueue ! muxer. muxer. ! progressreport name=Rec_time ! filesink location=/home/pont/rec_2015-09-16_184502.mkv

device-name,берется из

pacmd list | sed -n «s/.*<\(.*\\.monitor\)>/\\1/p» | head -1

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

Я нечего не понял. Есть какая-то русскоязычная документация по gst-launch? Не понимаю сам принцип, в котором надо располагать опции.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

на хабре что-то было

скачай https://github.com/pontostroy/gstreamer-screenrecording/blob/master/rec.sh

и запускай rec.sh -s -n=o

будет запись звука и использование omx, попробую сейчас добавить эти всякие старт х\y в ключи

Novell-ch ★★★★★
()
Последнее исправление: Novell-ch (всего исправлений: 1)
Ответ на: комментарий от Novell-ch

спасибо, правда я уже разобрался с gst-launch, мощная вещь. Правда пока наткнулся на проблемку: запись на диск происходит отлично, а вот если попытаться стримить на твич, видео получается с рывками. Кроме того, ключевые кадры попадаются слишком редко, нужно долго ждать, прежде чем появится картинка. И еще я не нашел внятной документации по опциям omxh264enc. Не знаешь, куда можно обратиться по этим вопросам?

Khnazile ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.