Привет Novell-ch! Помнишь, ты мне объяснил как записывать видео с экрана с помощью VAAPI?
С тех пор прошло много времени, и второй чип, встроенный в мой ноутбук - NVIDIA - тоже обрёл поддержку аппаратного кодирования FullHD! Поэтому я ушёл с Gstreamer на ffmpeg. Но недавно случилась беда: видео стало записываться очень ускоренно! А мне хочется кое-что снять... Поэтому я вернулся на Gstreamer...
А он вообще не работает! Вот смотри:
$ sh rec-1.2.sh
Using vaapiencode_h264 encoder
gst-launch-1.0 -e ximagesrc use-damage=0 ! queue ! video/x-raw,format=BGRx ! videoconvert ! video/x-raw,format=I420,framerate=30/1 ! queue leaky=downstream ! vaapiencode_h264 ! h264parse ! queue ! matroskamux name=muxer muxer. ! progressreport ! filesink location=/home/zenitur/rec_2015-09-14_030336.mkv
Setting pipeline to PAUSED ...
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_34
libva info: va_openDriver() returns 0
Pipeline is live and does not need PREROLL ...
Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL;
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Так и висит! Файл создаётся и занимает 0 байт.
Что я пробовал делать:
- Я сразу вспомнил что из Packman пришло обновление Gstreamer 1.2 до 1.4. Откатил - это стоило мне нескольких часов! Ничего не изменилось! (лог выше - как раз с версией 1.2).
- Пересобрал gstreamer-plugins-vaapi. Пересобрал его ещё раз!
- Отключил монитор, оставив только ноутбучный - вдруг в этом дело? Нет.
- Выключил компиз. Не помогло.
- Переключился с MATE на KDE - тоже не помогло.
- Полностью убрал участок команды для записи звука - вдруг именно в этом «узкое место»?
- Попробовал софтварно - софтварно конечно работает
Opensuse 12.2 (знаю что старый, однако с ним же год назад работало), libva1 1.2.1, intel-vaapi-driver 1.2.0. Gstreamer 1.2 и 1.4.