New issue
Advanced search Search tips

Issue 806691 link

Starred by 5 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

HW H264 adds useless SEI on each frame. It takes 5% of bitrate for 100kbps 30fps video.

Project Member Reported by ssilkin@chromium.org, Jan 29 2018

Issue description

Chrome Version: 64.0.3282.87
Chrome OS: 10176.47.0
Device: HP Kip

What steps will reproduce the problem?
1. Make video call and dump video received from Kip. I used custom build of Chromium on Ubuntu where I enabled dumping of received video (patch is attached).
2. Open https://appr.tc/?vrc=h264&vrbr=200&vsc=h264&vsbr=200 in Chromium from (1).
3. Join the room from Kip.
4. Analyze received.ivf which you will find in the folder you ran chromium from.

What is the expected result?
Video stream contains NAL units of type 7,8,5 and 1 (SPS, PPS, IDR and slice).

What happens instead?
In addition to SPS/PPS/IDR/Slice video stream contains NAL units type 6: each frame is accompanied with buffering_period and pic_timing SEI. Those SEI adds 20 bytes to each frame. For 30fps video coded into 100kbps this will be 5% of total bitrate (i.e. something). These is no need to send those SEI since there are not needed for decoding.


Please use labels and text to provide additional information.


For graphics-related bugs, please copy/paste the contents of the about:gpu
page at the end of this report.


 
recv_from_kip_apprtc_h264_200kb.png
51.1 KB View Download
recv_from_kip_apprtc_h264_200kb.ivf
1.4 MB Download
webrtc_dump_recv_video.diff
445 bytes Download
Status: Available (was: Untriaged)
Labels: videoshortlist
I reproduced the issue on Kip and added some logs to look into what is happening.
- VAAPI VEA forces a keyframe if(frame_ref->force_keyframe || encoding_parameters_changed_)[0].
- WebRTC asks for RequestEncodingParametersChange() too often which in turn sets |encoding_parameters_changed_| true and forces a keyframe.
- It looks like there wasn't a change on VAAPI side lately. This is probably caused by WebRTC asking more often.
- It looks like most param change is in framerate: between 29 and 30.

Logs are attached. posciak@ can you comment if it is necessary to force keyframe in each param change? 

[0] https://cs.chromium.org/chromium/src/media/gpu/vaapi/vaapi_video_encode_accelerator.cc?rcl=8bbeef73d50a85e6672204d6c5a8638249e244a8&l=655

chrome
1.2 MB View Download
debug.diff
2.9 KB Download
Issue 801493 has been merged into this issue.

Comment 5 Deleted

It seems #3 and #4 are not related to this issue, which is is about SEI. Ticket for frequent intra is here - https://bugs.chromium.org/p/chromium/issues/detail?id=806235.

Sign in to add a comment