I have a simple pipeline to capture screen.
gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! videoconvert ! qsvh264enc bitrate=1024 ! matroskamux ! filesink location=screen_record.mkv
It works in one computer, but fails in another one. The two computers have the gstreamer version 1.22.5, but different Intel CPU/GPU hardware. What could be the reason? The error messages are as follows:
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
0:00:00.062214769 57916 0x55c7a43e4460 FIXME default gstutils.c:4036:gst_pad_create_stream_id_internal:ximagesrc0:src Creating random stream-id, consider implementing a deterministic way of crea
ting a stream-id
Got context from element ‘qsvh264enc0’: gst.va.display.handle=context, gst-display=(GstObject)“(GstVaDisplayDrm)\ vadisplaydrm1”, description=(string)“Intel\ iHD\ driver\ for\ Intel(R)\ Gen\ Graphics\ -\ 23.
3.0\ (ca1098d8a)”, path=(string)/dev/dri/renderD128;
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
0:00:00.064077953 57916 0x55c7a43e4460 ERROR qsvencoder gstqsvencoder.cpp:1104:gst_qsv_encoder_init_encode_session: MFXVideoENCODE::Init failed -17 (MFX_ERR_DEVICE_FAILED)
0:00:00.064175462 57916 0x55c7a43e4460 WARN videoencoder gstvideoencoder.c:771:gst_video_encoder_setcaps: rejected caps video/x-raw, width=(int)1280, height=(int)800, framerate=(fraction)
30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, interlace-mode=(string)progressive
0:00:00.066055929 57916 0x55c7a43e4460 ERROR qsvencoder gstqsvencoder.cpp:1104:gst_qsv_encoder_init_encode_session: MFXVideoENCODE::Init failed -17 (MFX_ERR_DEVICE_FAILED)
0:00:00.066153559 57916 0x55c7a43e4460 WARN videoencoder gstvideoencoder.c:771:gst_video_encoder_setcaps: rejected caps video/x-raw, width=(int)1280, height=(int)800, framerate=(fraction)
30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, interlace-mode=(string)progressive
0:00:00.066171459 57916 0x55c7a43e4460 WARN GST_PADS gstpad.c:4361:gst_pad_peer_query:videoconvert0:src could not send sticky events
0:00:00.078969890 57916 0x55c7a43e4460 ERROR qsvencoder gstqsvencoder.cpp:1104:gst_qsv_encoder_init_encode_session: MFXVideoENCODE::Init failed -17 (MFX_ERR_DEVICE_FAILED)
0:00:00.079111652 57916 0x55c7a43e4460 WARN videoencoder gstvideoencoder.c:771:gst_video_encoder_setcaps: rejected caps video/x-raw, width=(int)1280, height=(int)800, framerate=(fraction)
30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, interlace-mode=(string)progressive
0:00:00.090858085 57916 0x55c7a43e4460 ERROR qsvencoder gstqsvencoder.cpp:1104:gst_qsv_encoder_init_encode_session: MFXVideoENCODE::Init failed -17 (MFX_ERR_DEVICE_FAILED)
0:00:00.090962298 57916 0x55c7a43e4460 WARN videoencoder gstvideoencoder.c:771:gst_video_encoder_setcaps: rejected caps video/x-raw, width=(int)1280, height=(int)800, framerate=(fraction)
30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, interlace-mode=(string)progressive
0:00:00.090999833 57916 0x55c7a43e4460 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: Internal data stream error.
0:00:00.091010445 57916 0x55c7a43e4460 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstXImageSrc:ximagesrc0: Internal data stream error.
Additional debug info:
…/subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstXImageSrc:ximagesrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.028725936
Setting pipeline to NULL …
0:00:00.092166197 57916 0x55c7a43e4460 ERROR qsvencoder gstqsvencoder.cpp:1104:gst_qsv_encoder_init_encode_session: MFXVideoENCODE::Init failed -17 (MFX_ERR_DEVICE_FAILED)
0:00:00.092273817 57916 0x55c7a43e4460 WARN videoencoder gstvideoencoder.c:771:gst_video_encoder_setcaps: rejected caps video/x-raw, width=(int)1280, height=(int)800, framerate=(fraction)
30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, interlace-mode=(string)progressive
Freeing pipeline …