Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

H.264 Profiles in gstreamer-vaapi



I am doing some experimentation using gstreamer-vaapi on an Intel i3-4370 CPU. I am running libva 1.6.1, and libva Intel driver 1.6.0 on Ubuntu 15.04.

My issue is that I cannot seem to get the thing to do anything except constrained baseline, despite asking it to do other profiles.

For example:

gst-launch-1.0 filesrc location=/ramdisk/bbb_sunflower_1080p_30fps_normal.mp4 ! qtdemux ! vaapidecode ! vaapiencode_h264 ! video/x-h264,profile=high ! qtmux ! filesink location=/ramdisk/

appears to work fine, but something like:

avprobe -show_streams /ramdisk/

will indicate

profile=Constrained Baseline

Indeed, the output file sizes don't change much, if at all, between the profiles.

The only way that I can see a change what avprobe reports for the profile is to change the encoder element to:

vaapiencode_h264 dct8x8=1

My question is, is this correct behavior? Do we need dct8x8 to do anything higher than Constrained Baseline? If so, why? Is this a fundamental detail of H.264, or is this an implementation detail?

I am trying to compare some tradeoffs between HW and SW implementations, so I am trying to be very careful which knobs I turn, in order to be able to properly compare.

Thanks in advance for any feedback!
-Bill Katsak



0 Kudos
2 Replies

This previous conversation may help:

As was covered there, gstreamer-vaapi isn't officially supported with Media SDK/Media Server Studio installation and is out of the scope of this forum.  However, you may be able to take your question to the gstreamer-devel mailing list.

Regards, Jeff


Hi Jeff,

Thanks for your reply. If you look closely, the thread that you linked is my own thread from a few months ago, and in fact I was the one who came up with the solution to the issue at hand. This is indeed a new issue that I thought may be of interest to this community (indeed, a component specifically disobeying what you are asking it to do!).

I'll check out gstreamer-devel and

Thanks again,