Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-解码视频时对其进行编码_Android_Video_Opengl Es 2.0_Android Mediacodec_Video Encoding - Fatal编程技术网

Android-解码视频时对其进行编码

Android-解码视频时对其进行编码,android,video,opengl-es-2.0,android-mediacodec,video-encoding,Android,Video,Opengl Es 2.0,Android Mediacodec,Video Encoding,我使用SurfaceTexture和OpenGL ES 2.0使用glsl着色器修改视频。我还可以用MediaCodec对结果视频进行编码 问题是,我发现解码视频的唯一方法是使用MediaPlayer和SurfaceTexture,但MediaPlayer没有逐帧解码选项。所以现在,它就像一个实时编码/解码,没有停顿 我也尝试过使用seekTo/pause/start,但它永远不会更新纹理 那么,有没有可能用一步一步的解码来代替编码过程呢?恐怕我目前的方法不太准确 提前谢谢 是的,您需要使用Me

我使用SurfaceTexture和OpenGL ES 2.0使用glsl着色器修改视频。我还可以用MediaCodec对结果视频进行编码

问题是,我发现解码视频的唯一方法是使用MediaPlayer和SurfaceTexture,但MediaPlayer没有逐帧解码选项。所以现在,它就像一个实时编码/解码,没有停顿

我也尝试过使用seekTo/pause/start,但它永远不会更新纹理

那么,有没有可能用一步一步的解码来代替编码过程呢?恐怕我目前的方法不太准确


提前谢谢

是的,您需要使用MediaExtractor和MediaCodec对其进行解码,而不是使用MediaPlayer(与MediaPlayer使用的SurfaceTexture相同)


例如ExtractMpegFramesTest at,也可能是DecodeEditEncodeTest(或者对于>=Android 5.0异步版本,请参阅)。

编辑:错误,mediaPlayer的流不能逐帧使用,似乎只能以“真实”速度工作

实际上,我已经用MediaPlayer做到了。以下是答案:

使用计数器,可以加快或降低视频流的速度,并将其与预览或编码同步


但是,如果您想对特定帧进行真正的搜索,那么mstorsjo的解决方案要好得多。在我的例子中,我只是想确保编码过程不会比视频输入流快或慢。

谢谢你的回答,我认为MediaPlayer已经足够了,但显然流速度无法控制,因此无法与编码器同步。。问题是ExtractMpegFramesTest可能太慢,DecodeEditEncodeTest示例不使用视频文件作为输入,而是使用自定义的“VideoChunk”,所以我有点难以理解。我需要有最小api 18所以。。非常感谢您的帮助,谢谢!基于ExtractMpegFramesTest成功地实现了这一点。