我的目标如下:
我需要读取存储在SD卡上的视频,逐帧进行处理,然后再将其存储到SD卡上的新文件中。问题在于,OpenCV4Android没有视频编码器/解码器,因为它不包括ffmpeg。此外,使用JavaCV处理图像对我来说也不是一个选择,因为代码已经用本地OpenCV编写,我通过JNI访问它们。我在stackoverflow和Google的其他部分都做了很多阅读,但没有找到解决方案。
以下是我的要求:
1. JavaCV允许我逐帧读取视频并逐帧存储它。但是,我无法将视频转换为可以由通常的OpenCV4Android处理的普通OpenCV Mat对象。
2. 我了解到JCodec是用于编码/解码视频的库。JCodec是否能够满足我的任务?如果是,请提供示例。
3. 编译FFMPEG用于Android也是一种选择。但是,我认为自己编写FrameGrabber和FrameRecorder有点过头了。我认为除了JavaCV的解决方案之外,必须存在某些解决方案。
4. 从API 18开始,Android有MediaCodec和MediaMuxer。也许它们可以帮助我?
所以,让我们来看看我的要求。我当前的目标是针对Android API 19,因此我拥有所需的每个函数。对我来说最重要的要求是:
如果我使用30 FPS处理10秒的视频,则结果也应为30 FPS的10秒视频。因此,我想得到视频的精确副本,但是每帧都添加了一些OpenCV绘图。例如,使用Python通过VideoWriter类和VideoInput类可以完成此任务。我需要在Android上获得相同的功能。
我想知道为什么以前没有人遇到这个问题(或者我没有找到)。希望我解释清楚了。
以下是我的要求:
1. JavaCV允许我逐帧读取视频并逐帧存储它。但是,我无法将视频转换为可以由通常的OpenCV4Android处理的普通OpenCV Mat对象。
2. 我了解到JCodec是用于编码/解码视频的库。JCodec是否能够满足我的任务?如果是,请提供示例。
3. 编译FFMPEG用于Android也是一种选择。但是,我认为自己编写FrameGrabber和FrameRecorder有点过头了。我认为除了JavaCV的解决方案之外,必须存在某些解决方案。
4. 从API 18开始,Android有MediaCodec和MediaMuxer。也许它们可以帮助我?
所以,让我们来看看我的要求。我当前的目标是针对Android API 19,因此我拥有所需的每个函数。对我来说最重要的要求是:
如果我使用30 FPS处理10秒的视频,则结果也应为30 FPS的10秒视频。因此,我想得到视频的精确副本,但是每帧都添加了一些OpenCV绘图。例如,使用Python通过VideoWriter类和VideoInput类可以完成此任务。我需要在Android上获得相同的功能。
我想知道为什么以前没有人遇到这个问题(或者我没有找到)。希望我解释清楚了。