public static void readVideo2Bitmap(String uri) throws IOException, InterruptedException {
FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(uri);
grabber.setImageWidth(1280);
grabber.setImageHeight(720);
grabber.setPixelFormat(avutil.AV_PIX_FMT_NV21); // 设置像素格式
grabber.start();
saveAsNV21(grabber); // 调用下列函数
grabber.stop();
grabber.close();
}
private static void saveAsNV21(FFmpegFrameGrabber grabber) throws IOException, InterruptedException {
while (Constant.readVideo2BitmapFlag) {
Frame frame = grabber.grab();
// 这里怎么将frame转换成byte[]数组?
if (RtspActivity.rgbCameraHelper != null) {
RtspActivity.rgbCameraHelper.onPreviewFrame(nv21);
}
Log.i("djtest", "saveAsBitmaps: nv21长度=" + nv21.length);
Thread.sleep(40);
}
}
订阅了您的专栏,问题:获取到NV21格式的frame后如何转成byte[]数组。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 Frame frame = ff.grabFrame(); AndroidFrameConverter androidFrameConverter = new AndroidFrameConverter(); Bitmap bitmap = androidFrameConverter.convert(frame); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] imageInByte = stream.toByteArray();
解决 无用评论 打赏 举报
悬赏问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教