We use Intel SDK Linux version for some decode/encode/transcode development. We get a 1920*1080 video 15 fps, the bitrate around 1Mbps (no motion), we do decoding, frame drop encoding to 5 fps and we find after re-encoding the bitrate is around 2Mbps, which is even higher than before.we The RateControl is AVBR and TargetKbps is 700 but looks this parameter doesnt take any effect.
Could anyone give some suggestion why could this happen.
Thank you for asking the question. Can you please rephrase this line " We get a 1920*1080 video 15 fps, the bitrate around 1Mbps (no motion), we do decoding, frame drop encoding to 5 fps" I am not sure I have got your implementation properly.
From the last line, I have understand that bitrate is not being strictly set while encoding. You are getting an o/p of 2Mbps even after setting target Kbps to be 700Kbps. Please let me know If I have go you right.
Hi Surbhi, here is what i did. We have a video source whicch is 1920*1080 15fps stream and the bitrate is around 1Mbps.
We design a software which use Intel Media SDK (Linux platform ) to transcode this video to 1920*1080 5 fps.
What we did is, we Decode this video first, drop 2/3 of frame and encoder it again. but we find after we encoder the video
we get the final video bitrate is around 1.8 ~ 2Mbps. The Intel SDK encoder set with RateControl AVBR and TargetKbps is 700 kbps.
My question is why after frame drop the new h264 video could be bigger than the original one. and why the TargetKbps setting doesn't work as expected
My bet is that you might see the same behavior even before reducing the frame rate.
Can you please check without dropping the frame rate and confirm it? Also can you tell us which encoder you are using - AVC, mpeg 2? If AVC, can you please try with Main Profile, you should see a better result.
Hi Surbhi , Thanks for your suggestion, Yes. we use AVC to decoder h264 and re-encode it. I try the MFX_PROFILE_AVC_MAIN this time, the bitrate after encoding dropped to 1.1 Mbps now which is much better than before (we use MFX_PROFILE_AVC_CONSTRAINED_BASELINE originally for the CodecLevel and get 1.8 Mbps bitrate). But compared with original input h264 video stream which only get 1 Mbps, so after dropping 2/3 frame the bitrate is still little higher, is there any way to reduce the bitrate further? I believe the original h264 video is generated by TI certain chip which get very good video quality with very low bitrate so far I know.
Good to know that the bitrate got reduced after using MAIN profile. Can you please give me cmds to replicate the behavior like what application & binary used for decoder, encoder and video processing. Please also include the changes to make the application. One thing I'm confused about is if you are decreasing the frame rate or no. of frames. For eg: if the YUV is of 300 frames, you are dropping 2/3rd of frames i.e 100 frames or trans coding to reduced frame rate and the no. of frames remain same. Thanks for all the information.