-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bandwidth utilisation not adjustable #15
Comments
I think I have seen such problem before with a combination of driver, libva and ffmpeg version, for example here
When live streaming complex material it should be easy to spot, the quality is simply bad. What platform are you on (generation), which driver do you use, what OS/FFmpeg version? I would start debugging it by:
Should not in theory but (as side note) I would check gpu usage with: sudo intel_gpu_top H.264 should not require much really but HEVC depending on platform generation can be heavy on GPU, see for example this where double HEVC stream uses 65% of SBCs gpu and barely keeps up to 30 FPS. Just in case, you may control speed/quality trade-off with |
Also if your material is not complex (e.g. static scene) from what I remember you may get low bitrate with VBR. Make sure you have complex scene (e.g. moving camera) that actually requires some bitrate. |
Thanks @bmegli Best Regards |
Intel ATOM Quad-Core up to 2.0GHz x7-E3950 |
Looking at ark it is ApolloLake By cross-checking with FFmpeg QuickSync it has gen 9 graphics.
By looking at table
that it should probably work with both i965 and iHD. Crosschecking with iHD support matrix we see that even with iHD only it has two different ways to encode H.264 E - Hardware Encoding, Low Power Encoding(VDEnc/Huc) Es only with full featured build. To get full feature build in Ubuntu
Ideally also before and after updating to see if it changes anything: LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD128 |
Quoting myself:
# this is for iHD full feature build
sudo apt install intel-media-va-driver-non-free
LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD128 Sorry - the above was for Ubuntu 20.04 (which has both i965 and iHD drivers), not 18.04 (which has i965 driver) |
You can also:
vainfo --display drm --device /dev/dri/renderD128
#VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
# alternative Low Power fixed function encoding
#VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
(search for bitrate, rate control, etc, both in open and closed)
Some of the issues with 20.04 are already fixed |
Thank you so much for the suggestions @bmegli I did some further test and realised that the intel-gpu-top gives about 10% utilisation, and i think because of some other part of the code, the CPU is pretty busy like 80% in all cores. and checked my raw depth images is about 15 FPS instead of 30 FPS as I set. Not sure why this happened, but when I set the framerate to 15 in for NHVE, the bitrate control seems working. |
The default rate control is VBR If you want CBR replace HVE line with: h->avctx->bit_rate = h->avctx->rc_max_rate = config->bit_rate; This will probably keep you closer to target bitrate. |
Hi @bmegli
I was testing the performance of the encoding with different bandwidth parameters
the initilisation I used was:
However, the traffic monitoring in linux only showing 1.8-2 mbps. I have checked different bit_rate parameters (10,000,000 and 20,000,000) but not really made any difference. Did I reached some limitations of the hardware? (not sure if the h264 is able to handle 1280x720 resolution.
Also I did have two NHVE initialised with different bit rate and different port. would that make a difference?
Best Regards,
Chang
The text was updated successfully, but these errors were encountered: