最近,我想在Android手机上进行低延迟视频通话,使用mediacodec
类编解码器(例如video / avc)。
为了实现低延迟视频流,我想调用帧内刷新(IR)技术。当我使用参数配置h264编码器时,我发现我设置的参数不起作用。详情如下:
此参数在设置后无效,从比特流的结果可以看出,编码器没有实现帧内刷新。
你能给我一些指导吗?我使用linphone-android,设备是三星s8(SM-G9500,Android 7.0,API 24),从mediacodec.xml文件中我们可以看到这个设备支持内部刷新,在此先感谢您的帮助!代码:
AMediaFormat_setInt32(format, "i-frame-interval", 0);
AMediaFormat_setInt32(format, "bitrate-mode", 1);
AMediaFormat_setInt32(format, "profile", 1); // AVCProfileBaseline
AMediaFormat_setInt32(format, "level", 1024); // AVCLevel32
if(ms_get_android_sdk_version() >= 24)
AMediaFormat_setInt32(format, "intra-refresh-period", 10);//7 0118
答案 0 :(得分:1)
您需要为I_FRAME_INTERVAL使用负值。
见这里: https://developer.android.com/reference/android/media/MediaFormat.html#KEY_I_FRAME_INTERVAL
“OutputFormat”包含什么?