我使用MediaCodec對相機數據進行編碼,當我在名爲Vivo X5 Pro(android 5.0,API 21)的設備上使用它時,MediaCodec編碼的數據大小高於90000,並且通常在其他設備上大小約爲15000.然而,我改變媒體格式的參數,它也無濟於事。 我還發現,當我在Vivo X5 Pro(android 5.0,API 21)上使用方法MediaCodec.getOutputFormat()獲得格式時,它有7個數據,比其他正常情況多一個,它命名爲「buffer-size」是1048576,這是否會影響MediaCodec編碼?我如何使用Vivo X5 Pro(android 5.0,API 21)編碼正常的數據大小?感謝幫助!MediaCodec編碼數據太大
MediaCodec mEncoder = MediaCodec.createEncoderByType(MediaFormat.MIMETYPE_VIDEO_AVC);
MediaFormat format = MediaFormat.createVideoFormat(MediaFormat.MIMETYPE_VIDEO_AVC, 320, 568);
format.setInteger(MediaFormat.KEY_BIT_RATE, 320 * 568 * 2);
format.setInteger(MediaFormat.KEY_FRAME_RATE, 20);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 1);
format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 320 * 568);
PS:不過我改變PARAMS體內X5臨(的是Android 5.0,API 21)編碼數據量仍高於90000
似乎與我的情況相反。我的情況太大了,他太小了。我改變了參數,但它在Vivo X5 Pro中不起作用(尺寸不低),但它適用於其他設備.T_T –
它只是第一個緩衝區的大小太大,還是它們太大?如果你改變比特率,後面的緩衝區是否也保持相同的大小或者它們是否改變(而第一個緩衝區仍然很大)? – mstorsjo
都太大了,如果我改變比特率,大小沒有變化 –