Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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/9/opencv/3.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:如何通过硬件加速将图像流编码到h264?_Android_Opencv_Stream_Ffmpeg_H.264 - Fatal编程技术网

Android:如何通过硬件加速将图像流编码到h264?

Android:如何通过硬件加速将图像流编码到h264?,android,opencv,stream,ffmpeg,h.264,Android,Opencv,Stream,Ffmpeg,H.264,我目前正在开发一个应用程序,读取相机图像并使用OpenCV进行处理。 我想将原始图像存储为“正常”视频,并在处理后(提取信息后)删除处理后的图像。 为此,我基本上需要将图像流编码为h264。 在通用cpu上使用ffmpeg或其他解决方案是不可能的。必须使用内部硬件加速来完成。 因此,我有三个问题: 有人知道如何使用内部硬件模块对视频进行编码来实现h264编码吗 还是ffmpeg真的在Android上支持这一点 或者在“常规”编码过程中是否有方法访问图像流 非常感谢 您可以运行MediaRec

我目前正在开发一个应用程序,读取相机图像并使用OpenCV进行处理。 我想将原始图像存储为“正常”视频,并在处理后(提取信息后)删除处理后的图像。 为此,我基本上需要将图像流编码为h264。 在通用cpu上使用ffmpeg或其他解决方案是不可能的。必须使用内部硬件加速来完成。 因此,我有三个问题:

  • 有人知道如何使用内部硬件模块对视频进行编码来实现h264编码吗

  • 还是ffmpeg真的在Android上支持这一点

  • 或者在“常规”编码过程中是否有方法访问图像流


非常感谢

您可以运行MediaRecorder使用h264硬件编码器(如果可用)创建视频,同时注册预览帧处理程序。不过,我不能保证所有的预览帧都是双向的

或者,您可以使用libstagefright编译ffmpeg,它将使用硬件avc编码器

或者,您可以直接从应用程序(通过JNI)使用stagefright


最后,您可以按照的方法为您的平台找到最佳的录制API(无论是MediaRecorderAPI,还是MediaCodec需要Android 4.1的缓冲区到缓冲区方法,还是MediaCodec需要Android 4.3的表面到缓冲区方法。

非常感谢!您有关于如何注册预览帧处理程序的示例吗?