㈠ android采集的摄像头数据是什么格式的
android camera初始采集到的格式是yuv格式的,图像绘制的时候会转换成rgb格式的。
㈡ Android Camera提取出来的yuv420源数据怎么提取y,u,v分量
Camera默认的预览格式是 NV21,4:2:0 结构的,每个U、V用于4个Y
参考下下面的代码
**
* Converts YUV420 NV21 to ARGB8888
*
* @param data byte array on YUV420 NV21 format.
* @param width pixels width
* @param height pixels height
* @retur a ARGB8888 pixels int array. Where each int is a pixels ARGB.
*/
public static int[] convertYUV420_NV21toARGB8888(byte [] data, int width, int height) {
int size = width*height;
int offset = size;
int[] pixels = new int[size];
int u, v, y1, y2, y3, y4;
// i along Y and the final pixels
// k along pixels U and V
for(int i=0, k=0; i < size; i+=2, k+=1) {
y1 = data[i ]&0xff;
y2 = data[i+1]&0xff;
y3 = data[width+i ]&0xff;
y4 = data[width+i+1]&0xff;
v = data[offset+k ]&0xff;
u = data[offset+k+1]&0xff;
v = v-128;
u = u-128;
pixels[i ] = convertYUVtoARGB(y1, u, v);
pixels[i+1] = convertYUVtoARGB(y2, u, v);
pixels[width+i ] = convertYUVtoARGB(y3, u, v);
pixels[width+i+1] = convertYUVtoARGB(y4, u, v);
if (i!=0 && (i+2)%width==0)
i+=width;
}
return pixels;
}
private static int convertYUVtoARGB(int y, int u, int v) {
int r,g,b;
r = y + (int)(1.402f*u);
g = y - (int)(0.344f*v + 0.714f*u);
b = y + (int)(1.772f*v);
r = r>255? 255 : r<0 ? 0 : r;
g = g>255? 255 : g<0 ? 0 : g;
b = b>255? 255 : b<0 ? 0 : b;
return 0xff000000 | (r<<16) | (g<<8) | b;
}
㈢ android 中如何将camera获取的YUV420SP原始数据当视频播放
手机自带的播放器即可
㈣ Android摄像头获得YUV格式的视频,网上很多都把它转换为RGB为什么呢能不能把它转换为H264或者MP4格式的
RGB ? YUV ?这是视频格式?难道我OUT了,经常和视频打交道,视频格式平常的和少见的都略知,就是没见过这两种,RGB不会是代表红绿蓝三基色通道的视频吧,YUV的原理或许和RGB一样,并不代表格式,而是视频的颜色通道
㈤ Android Camera提取出来的yuv源数据怎么提取y,u,v分量
Android
camera采集到的可以是yuv420sp也可以食yuv420p。我知道yuv420中yuv的分布。现在主要有个前提是从Android
Camera
中采集到的yuv420数据,这个byte[]的长度是一倍的视频宽高乘积,不是1.5倍。在jni里面获取到的长度又确实是1.5倍,但是在jni里面转换为jbyte*
的长度还是1倍,就不知道怎么弄了~
查看原帖>>
㈥ Android Camera的这个接口怎么把data转为视频
这些原始数据实际上是每一帧的图像数据yuv420等数据,如果你懂的视频协议可以自己写视频压缩编码,如果不懂就用原生的mediarecored进行编码或者用开源的ffmpeg进行编码
㈦ android 摄像头出来的格式怎么会是yuv420p 而不是yuv420sp(nv21)呢
那是因为你在相机参数初始化的时候未设置,加上这个就可以了
List<Integer> formatsList = parameters.getSupportedPreviewFormats(); //获取设备支持的预览format
if(formatsList.contains(ImageFormat.NV21))
parameters.setPreviewFormat(ImageFormat.NV21); //设置预览格式为NV21,默认为NV21
if(formatsList.contains(ImageFormat.JPEG))
parameters.setPictureFormat(ImageFormat.JPEG); //设置照片储存格式
㈧ android camera 采集到的数据是yuv吗
是,android camera初始采集到的格式是yuv格式的,图像绘制的时候会转换成rgb格式的。
㈨ android怎么获取usb camera的数据
Android camera采集到的可以是yuv420sp也可以食yuv420p。我知道yuv420中yuv的分布。现在主要有个前提是从Android Camera 中采集到的yuv420数据,这个byte[]的长度是一倍的视频宽高乘积,不是1.5倍。在jni里面获取到的长度又确实是1.5倍,但是在jni里面转换为jbyte* 的长度还是1倍,就不知道怎么弄了~