从视频中获取帧而不使用MediaMetadataRetriever

3
我正在尝试找到一种将视频提取为帧的方法。主要目标是使用openGl更改图像并重新构建视频。
问题在于我找不到一个好的提取视频的方法。我看到许多类似的问题都用MediaMetadataRetriever解决了,但我不想使用它,因为它非常慢。
我对像jcodec、ffmpeg、openCV和mp4parser这样的库进行了一些研究。
jcodec - 运行良好但速度很慢,每个getFrame()需要1秒钟。
ffmpeg - 在GPL许可下发布,这意味着您必须发布您的代码。
openCV - 复杂。也许我可以用它来完成我需要的工作,但它看起来太复杂了,我正在寻找一个更简单的解决方案。
mp4parser - 提取已解码的帧但不支持将其编码为jpg/png。
如果能得到一些关于这个问题的帮助就太好了。谢谢。
1个回答

0
不需要开放所有代码,ffmpeg库使用LGPL许可证。avcodec的Android版本包括一个接口到libstagefright,为h264(avc)提供硬件编解码器。这是在Android上可以获得的最快速度。

FFmpeg的一部分库是根据GPL许可发布的,这些库是我需要的,以便将帧解码回PNG(libx256)。关于libstagefright-听起来很有趣,您是否有源代码、博客文章或其他包含更多“如何”信息的资源可以与读者分享?谢谢。 - Nativ
libx256是用于编码器的,不是吗?那你为什么还需要GPL呢? - Alex Cohn
1
请参见 https://dev59.com/t2oy5IYBdhLWcg3wWso_。 - Alex Cohn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接