Upstream gstreamer-vaapi features a vaapiencode_VP8 element that isn't included in the fedora package. Please add it to future builds of the package.
gstreamer1-vaapi-0.6.0 test package built with vaapiencode_vp8 enabled: https://bugzilla.redhat.com/show_bug.cgi?id=1243615#c4 $ rpm -q gstreamer1-vaapi gstreamer1-vaapi-0.6.0-1.fc22.x86_64 $ gst-inspect-1.0 | grep vaapiencode_vp8 vaapi: vaapiencode_vp8: VA-API VP8 encoder It doesn't seems to work on my laptop: $ LC_ALL=C GST_DEBUG="*:4" gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! video/x-raw,format=I420,width=640,height=480 ! vaapipostproc ! queue ! vaapiencode_vp8 ! webmmux ! filesink location=test2.webm 2>&1 | grep -i 'warn\|error' 0:00:00.423317640 29922 0x1156140 ERROR vaapi gstvaapiencoder_vp8.c:116:ensure_hw_profile: unsupported HW profile (0x01385056) 0:00:00.423326758 29922 0x1156140 WARN videoencoder gstvideoencoder.c:647:gst_video_encoder_setcaps:<vaapiencodevp8-0> rejected caps video/x-raw(memory:VASurface), format=(string)I420, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)30/1 0:00:00.423348151 29922 0x1156140 WARN videoencoder gstvideoencoder.c:1463:gst_video_encoder_chain:<vaapiencodevp8-0> error: encoder not initialized 0:00:00.423367811 29922 0x1156140 INFO GST_ERROR_SYSTEM gstelement.c:1835:gst_element_message_full:<vaapiencodevp8-0> posting message: GStreamer error: negotiation problem. 0:00:00.423404811 29922 0x1156140 INFO GST_ERROR_SYSTEM gstelement.c:1858:gst_element_message_full:<vaapiencodevp8-0> posted error message: GStreamer error: negotiation problem. ERROR: from element /GstPipeline:pipeline0/GstVaapiEncodeVP8:vaapiencodevp8-0: GStreamer error: negotiation problem. I tried the same action with h264 and I found a bug: https://bugzilla.gnome.org/show_bug.cgi?id=752558 If I compile using commit 3f28da7f5a224178d104992fe902212015dfb2e4 in order to avoid the bug, the command works with h264/qtmux, while it doesn't if using vp8/webmmux. $ gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! video/x-raw,format=I420,width=640,height=480 ! vaapipostproc ! queue ! vaapiencode_h264 ! qtmux ! filesink location=test2.mp4 I don't know if it's a different bug related with vp8 or I should use a different pipeline. I got this example from http://www.intel.co.uk/content/dam/www/public/us/en/documents/white-papers/video-encode-atom-e38xx-emgd-gstreamer-paper.pdf page 8. While the same action with h264 works
Ok, my problem is caused by my Intel CPU: only Skylake and greater seems to support vp8 encoding. What about you? Does it works? If it segfaults, it could be related with this vaapipostproc bug: https://bugzilla.gnome.org/show_bug.cgi?id=752558
My bad... I was under the impression that Broadwell supported VP8 decoding as well as encoding. I don't have access to a Skylake CPU so I can't comment on the fix. Thanks for looking into this one.
@Fransceco Thx for the patches, I'm updating libva to 1.6 on f23 and later. You can request acl to update gstreamer-vaapi in master, I will handle the build override and update along libva for f23. Thx
fixed for f23+