0
流的JPEG我試圖將JPEG從相機幀使用UDP套接字我的電腦,但我遇到了一些問題。從手機相機
所以我成立了一個攝像頭,並增加了回調的預覽框事件:
@Override
public void onPreviewFrame(byte[] data, Camera camera)
{
final YuvImage image = new YuvImage(data, mPreviewFormat, mPreviewWidth, mPreviewHeight, null); //Create the Yuv image
image.compressToJpeg(mPreviewRect, 80, stream); //Compress to JPEG
Bitmap b = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size()); //Convert to Bitmap
Bitmap resizedBitmap = Bitmap.createScaledBitmap(b, 320, 240, false); //Scale to 320x240
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); //Compress back to JPEG
byte[] byteArray = stream.toByteArray();
DatagramPacket sendPacket = new DatagramPacket(byteArray, byteArray.length, IPAddress, 37654);
try
{
socket.send(sendPacket); //Send frame to address
}
catch (IOException e)
{
e.printStackTrace();
}
stream.reset();
}
我的問題是,這是採取0.2秒左右,所以我的幀頻爲約5 FPS。有什麼辦法可以加速我的目標FPS是從15到20 FPS的任何地方。從我的計時測試,我相信,這個問題可能與Bitmap b = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
這似乎是服用時間最長的約0.1秒。有沒有辦法直接縮放Yuv圖像?
謝謝!