在花了一段时间之后,问一下也许会更好。谢谢帮忙,伙计们!
问题
c)我已经将视频帧呈现到GLView/GLRenderer中,但我不是为了通过GLSL更改帧而抓取帧。这似乎不起作用。但我需要可访问的GLES/GLSL纹理与视频数据一起用于视频处理:
MainActivity类:
public void onCreate(Bundle state) {
super.onCreate(state);
m_View = new GLSimpleView(this);
setContentView(m_View);
m_Holder = m_View.getHolder();
m_Holder.addCallback(this);
m_Holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
GLSimpleView类:
public GLSimpleView(Context context) {
super(context);
m_Renderer = new GLTextureRenderer(context);
this.setRenderer(m_Renderer);
}
int[] textures = new int[1];
GLES20.glGenTextures(1, textures, 0);
m_SurfaceTexture = textures[0];
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
m_Surface = new SurfaceTexture(m_SurfaceTexture);
m_Surface.setOnFrameAvailableListener(this);
// THIS ONE DOESN'T WORK WITH ANDROID 3.x!
// HOW TO BIND m_Surface TO m_MediaPlayer?
//Surface surface = new Surface(m_Surface);
//m_MediaPlayer.setSurface(surface);
//surface.release();
视频到GLView(通过GLSL没有纹理访问!):在GLSurfaceView而不是SurfaceView中播放视频
Android 4.x SDK VideoSurfaceTexture示例(不兼容3.2!):http://source-android.frandroid.com/cts/tests/src/Android/media/cts/videoSurfaceView.java
Android MediaPlayer(在Android 3.x中不支持setSurface()!):http://developer.Android.com/reference/Android/media/media/MediaPlayer.html
因此,主要的问题仍然是:如何使用Android3.x访问和操作视频帧?也许是另一种解决方法?花了太多时间,我错过了什么吗?考虑到谷歌电视上根本没有NDK支持,如果我们试图操纵视频数据,我们会受到很大的限制。
Megha很好心帮我调查这件事。我们不支持这在谷歌电视为ARM。这在我们现在的SoC(片上系统)是不可能的。
虽然HTML5的画布API没有提供直接在画布上绘制视频的方法,但是我们一定可以处理视频,其方法是从隐藏的video标签中捕获视频的帧,再使用循环把它们拷贝到画布上。 图3-5 处理视频 准备工作 开始之前,让我们谈一谈每个浏览器所支持的HTML5视频格式。在本书写作之时,关于视频格式的战争还在如火如荼的进行着,所有的主流浏览器,如Chome, Firefox, Opera, Safari, and
问题内容: 我想从视频中提取帧并对其应用一些过滤器,例如gabor / hough等。哪个Java库最适合处理各种视频编码?我一直在研究GStreamer,JMF,Xuggler等,但无法确定哪一个最好。我还希望编辑框架并使用新框架制作视频。 问题答案: 如果您要进行低级操作(例如提取帧和对其进行操作),那么Xuggler将是最佳选择,因为API围绕此低级进行调整。它适用于ffmpeg,因此可以处
问题内容: 我正在将Android 2.2与Eclipse结合使用。 我想制作一个捕获视频的应用程序,并针对每一帧将其作为位图发送到处理该方法 并返回新位图 并显示已处理位图的方法。 我对Android不太熟悉,因此,请问有人可以将我发送到我需要研究的资源上吗? 问题答案: 使用Android SDK完成以下步骤非常简单: 从相机捕获预览帧作为位图数据。 将以多种可能的图像格式返回代表帧的数据。
问题内容: 我正在创建一个单页应用程序,后端使用Golang,前端使用javascript。我想找到一种方法,以使用Golang获取视频的第一帧。 首先,我将一个.mp4视频文件上传到服务器。它保存在服务器上。 有没有一种方法可以使用Golang获取此视频的第一帧?应该可以在前端使用Javascript来做到这一点,但我认为这不是解决此问题的正确方法。 我不知道如何使用Golang来实现它,也没有
我正在使用ffmpeg录制一个视频使用覆盆子Pi与它的相机模块。我想运行一个图像分类器在一个规则的间隔,我需要从流中提取一个帧。 这是我当前用于录制的命令: 在其他线程中,建议使用此命令: 我不认为这是用于仍然附加到的文件,我得到错误“不能使用-SSEOF,test.h264的持续时间未知”。 ffmpeg允许这样做吗?