草庐IT

android - 如何使用 MediaCodec 从视频中获取位图(帧)

我正在尝试使用MediaCodec从视频文件中获取所有帧。如果我尝试在SurfaceView上显示视频,一切正常。但是如果surface为null,当我尝试从字节数组中获取Bitmap时,总是会获取null或运行时异常。这是我的代码:privateclassPlayerThreadextendsThread{privateMediaExtractorextractor;privateMediaCodecdecoder;privateSurfacesurface;publicPlayerThread(Surfacesurface){this.surface=surface;}@Overr

android - 如何在 Tracker 事件中获取 android facedetector 的当前帧(作为位图)?

我有标准的com.google.android.gms.vision.Trackerexample在我的android设备上成功运行,现在我需要对图像进行后处理以找到已在Tracker的事件方法中通知的当前面部的虹膜。那么,我如何获得与我在Tracker事件中收到的com.google.android.gms.vision.face.Face完全匹配的位图帧?这也意味着最终位图应匹配网络摄像头分辨率,而不是屏幕分辨率。一个不好的替代解决方案是每隔几毫秒在我的CameraSource上调用takePicture并使用FaceDetector单独处理这张照片。虽然这有效,但我有视频流在拍照

android - 将 android 预览帧转换为 OpenCV Mat

我正在尝试从相机预览中捕获图像并使用OpenCV将其转换为Mat对象。我注册了callbak方法publicvoidonPreviewFrame(byte[]data,Cameracamera)所以我收到了来自相机的所有预览帧,但我无法将其转换为OpenCVMat对象。我目前正在使用以下代码来转换预览data到Mat对象:MatpreviewFrameMat=newMat(1,data.length,CvType.CV_8U);previewFrameMat.put(0,0,data);这是正确的做法吗?我使用的图像类型是否正确(CvType.CV_8U)?

android - 录制时逐帧处理Android视频

我想做的是创建一个应用程序,在录制视频时添加效果。有什么方法可以让回调方法接收帧,然后对其应用效果并记录下来。目前AndroidMarket上有一个应用程序(VideocamIllusion)声称它是唯一可以执行此操作的应用程序。任何人都知道VideocamIllusion是如何做到这一点的,或者有一些指向概述Android视频处理的可能教程的链接?这是一个没有回答的类似问题:Androidpreviewprocessingwhilevideorecording 最佳答案 不幸的是,(除非我不知道API提供的某些其他方法)完成此操作

android - 如何从 Android 相机中找到帧的轮廓并将它们转换为 box2d 主体?

使用OpenFrameworks、OpenCV和Box2D,我能够以良好的帧率实现它。使用Android似乎是一项复杂得多的任务(部分原因是我是JAVA新手)。我是这样开始的:使用“OpenCV示例-图像处理”并删除除“canny”效果之外的所有内容,这会生成非常适合找到轮廓的漂亮黑白图像。publicMatonCameraFrame(CvCameraViewFrameinputFrame){mRgba=inputFrame.rgba();Imgproc.Canny(mRgbaInnerWindow,mIntermediateMat,50,100);Imgproc.cvtColor(m

android - 如何使用 AnimationDrawable 暂停帧动画?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。如何使用AnimationDrawable暂停帧动画?

java - 在不下载所有其他帧的情况下获取 GIF 图像的第一帧

我想从网络上获取一张GIF图片,但是我发现如果我下载整个GIF图片,会造成很大的网络流量。我可以只获取GIF图片的第一帧而不下载所有其他帧吗? 最佳答案 9年6个月后,是提供帮助的最佳时机。这可以使用ImageMagick使用命令完成:magickmogrify-formatpng*.gif[0]在包含文件的文件夹的目录中使用控制台。 关于java-在不下载所有其他帧的情况下获取GIF图像的第一帧,我们在StackOverflow上找到一个类似的问题: htt

android - Android上的OpenGL绘图结合Unity通过帧缓冲区传输纹理无法工作

我目前正在为Unity制作一个Android播放器插件。基本思路是我将播放MediaPlayer的视频。在Android上,它提供了setSurfaceAPI接收SurfaceTexture作为构造函数参数并最终与OpenGL-ES纹理绑定(bind)。在大多数其他情况下,例如显示图像,我们可以将这个纹理以指针/id的形式发送给Unity,调用Texture2D.CreateExternalTexture在那里生成一个Texture2D对象并将其设置为UIGameObject渲染图片。但是,在显示视频帧时,它与略有不同。在Android上播放视频需要GL_TEXTURE_EXTERNA

android - Android 上的应用内屏幕录制每秒捕获 15 帧

经过大量搜索和几天的实验,我还没有找到直接的解决方案。我正在开发一个应用程序,用户可以在屏幕上与宠物互动,我想让他把它保存为视频。是否有任何“简单”的方法来捕获应用程序本身的屏幕?我找到了一个解决方法(每秒保存一些位图,然后将它们传递给编码器)但它似乎太重了。即使帧率为15fps,我也会很高兴这似乎是可能的,即有一个类似的应用程序可以做到这一点,它叫做“TalkingTom” 最佳答案 这实际上取决于您实现“宠物View”的方式。你在Canvas上画画吗?OpenGLES?正常的AndroidView层次结构?无论如何,没有像其中一

android - 如何在 Android 编程中从相机应用程序捕获预览图像帧?

我正在编写一个应用程序来捕获相机预览帧并将其转换为Android中的位图。这是我的代码:Camera.PreviewCallbackpreviewCallback=newCamera.PreviewCallback(){publicvoidonPreviewFrame(byte[]data,Cameracamera){try{BitmapFactory.Optionsopts=newBitmapFactory.Options();Bitmapbitmap=BitmapFactory.decodeByteArray(data,0,data.length);//,opts);}catch(