Renk biçimini COLOR_FormatYUV420Flexible
olarak ayarlayarak MediaCodec kullanarak kodlamak istiyorum. Benim Girdi tamponu en böyle yuv420p.When ben girdi tampon:MediaCodec getInputImage bazı aygıtlarda boş döndürülüyor
int inputBufferIndex = mEncoder.dequeueInputBuffer(-1);
mCurrentBufferIndex = inputBufferIndex;
if (inputBufferIndex >= 0) {
ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
//if(VERBOSE)
Log.i(TAG,"pos:"+inputBuffer.position()+"\tlimit:"+inputBuffer.limit());
inputBuffer.clear();
return inputBuffer;
}
Ama bazı cihazlar yanlış renk olsun.
int inputBufferIndex = mEncoder.dequeueInputBuffer(-1);
mCurrentBufferIndex = inputBufferIndex;
if (inputBufferIndex >= 0) {
Image img = mEncoder.getInputImage(inputBufferIndex);
if(img==null)
return null;
//mCurrentInputPlanes = img.getPlanes();
ByteBuffer buffers[]={img.getPlanes()[0].getBuffer(),
img.getPlanes()[1].getBuffer(),
img.getPlanes()[2].getBuffer()};
Bazı cihazlarda YUV kanallara .Bu işi tampon doldurun: Yani bu deneyin. Ama getInputImage çağırırken moto X pro ve huawei P7 null olsun. Belgeler, resmin ham veri içermediğini söylüyor. Ancak, API 21'den beri de COLOR_FormatYUV420Flexible
desteklendiğinden bahsediyor. Bunu nasıl düzeltmeliyim.
işleyebilir farklı bir codec bileşeni Galaxy Note3 ve Galaxy Tab 4 10.1 cihazları, herhangi bir kimseden daha fazla bilgi? – FTLRalph
@FTLRalph Tam kod örneği gönderir misiniz? Sorudan, YUV verilerinin girişçiye nasıl kopyalandığı net değil. Ayrıca, sorunu gösteren kodlanmış video örneğini gönderebilir misiniz? Yanlış renk, adım adım veya yastıklama sorunu gibi görünüyor, ancak hata ayıklamak için daha fazla bilgiye ihtiyacınız var. –
COLOR_FormatYUV420Flexible'ı desteklediniz mi? bu bağlantıya göre: https://stackoverflow.com/questions/30857610/will-all-phones-support-yuv-420-semi-planar-color-format-in-h-264-encoder – user1796260