explicitly set profile+level for encoder
some modern Androids (namely my Xiaomi Mi A1 after the update to Andorid 9) seem to require that
This commit is contained in:
parent
bd5b8aff78
commit
905d2ab432
|
@ -53,11 +53,14 @@ public class Android360pFormatStrategy implements MediaFormatStrategy {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
MediaFormat format = MediaFormat.createVideoFormat("video/avc", outWidth, outHeight);
|
MediaFormat format = MediaFormat.createVideoFormat("video/avc", outWidth, outHeight);
|
||||||
// From Nexus 4 Camera in 720p
|
|
||||||
format.setInteger(MediaFormat.KEY_BIT_RATE, mVideoBitrate);
|
format.setInteger(MediaFormat.KEY_BIT_RATE, mVideoBitrate);
|
||||||
format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
|
format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
|
||||||
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 3);
|
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 3);
|
||||||
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
|
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
format.setInteger(MediaFormat.KEY_PROFILE ,MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline);
|
||||||
|
format.setInteger(MediaFormat.KEY_LEVEL, MediaCodecInfo.CodecProfileLevel.AVCLevel13);
|
||||||
|
}
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,11 +53,14 @@ public class Android720pFormatStrategy implements MediaFormatStrategy {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
MediaFormat format = MediaFormat.createVideoFormat("video/avc", outWidth, outHeight);
|
MediaFormat format = MediaFormat.createVideoFormat("video/avc", outWidth, outHeight);
|
||||||
// From Nexus 4 Camera in 720p
|
|
||||||
format.setInteger(MediaFormat.KEY_BIT_RATE, mVideoBitrate);
|
format.setInteger(MediaFormat.KEY_BIT_RATE, mVideoBitrate);
|
||||||
format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
|
format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
|
||||||
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 3);
|
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 3);
|
||||||
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
|
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
format.setInteger(MediaFormat.KEY_PROFILE ,MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline);
|
||||||
|
format.setInteger(MediaFormat.KEY_LEVEL, MediaCodecInfo.CodecProfileLevel.AVCLevel13);
|
||||||
|
}
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue