适用于H264流的Android硬件加速视频解码器

凯杜尔

我正在开发一个Android硬件加速视频解码器,用于解码实时H264附件B流。经过研究,看来我需要动手做。我就过来了几个关键字,比如OMXCodec,Android的操作系统stagefright和FFmpeg的stagefrightMediaCodecAPI, GStreamer我也知道-无法通过硬件不可知的方式来支持所有供应商的硬件。在这个阶段,所有这些都使我感到困惑,因为我没有找到直接的资源来推进其中的任何一个。我的要求是-

  1. Android硬件加速视频解码器
  2. 至少支持高通的Snapdragon,三星的Exynos和Tegra
  3. 实现必须在本机C / C ++层(不是Java层)中
  4. 来自Android 4.1.x Jellybean的支持就足够了
  5. 无需实施以后的阶段,例如-渲染,因为这些阶段已经在起作用。只需解码输入缓冲区并产生解码的输出缓冲区即可继续使用现有的流水线。

我试图从Android的stagefright的AwesomePlayer.cpp,SimplePlayer.cpp和ffmpeg stagefright的命令行可执行代码中获得一些提示。但是,对我而言,选择并继续其中的任何事情都没有多大意义。

我该怎么办?是否有任何有用的资源来获得清晰的直觉?

提前致谢!

迪恩·怀尔德

我最近使用MediaCodec API实现了这样的系统不幸的是,该API没有在NDK中公开,因此只能从Java层进行访问。

我发现的最佳资源是这套指南:

http://bigflake.com/mediacodec/

由于您很难在NDK中实现此功能,因此我想您需要编写一个精简的Java库来与MediaCodec API进行交互,然后通过C ++层的JNI对其进行调用。

如果您沿用FFMPEG路线,请牢记它的许可证,这对于分布式软件来说是相当严格的。

祝好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于UWP的Unity插件中使用DirectX11的硬件加速H264解码

5k播放器4k电影H264编解码器未在GTX970 GPU上使用硬件加速

Android 上的硬件加速 H.264/HEVC 视频解码为 OpenGL FBO 或纹理

开发H264硬件解码器Android-Stagefright或OpenMax IL?

如何检测Android H.264硬件加速功能

不支持Twilio视频编解码器H264

Windows 10使HEVC H.265编解码器使用硬件加速

在流#0编解码器中找不到编解码器h264的标签(将ffmpeg flac转换为alac转换)

如何激活硬件加速视频解码。基于 Chromium 的浏览器中的 VA-API

在流 #0 (mp4) 中找不到编解码器 h264 的标签

FFmpeg-使用硬件加速进行视频解码

VT-x / AMD-V硬件加速不适用于VirtualBox

如何使用pyglet播放视频流?(基于http或rtmp h.264编解码器的mpeg-ts)

Android MediaCodec AVC / H264生成无效的关键帧和编解码器配置

适用于python的PDF417解码器

FreeWITCH:显示编解码器不显示H264编解码器吗?

关于视频处理的硬件加速器

没有硬件加速的android中的youtube视频

检查GPU和H264硬件解码支持

Android Studio上模拟器的硬件加速问题

在Android上解码h264 ByteStream

Nvidia CUVID视频硬件加速

Chromium中的H.264视频支持,缺少编解码器吗?

如何正确使用硬件加速的Media Foundation Source Reader解码视频?

Java:适用于大数据量的通用BaseN编码器/解码器

h264 提取帧仅适用于某些操作系统/ ffmpeg 版本

使用媒体基础在Windows上解码android h264编码的流

MediaCodec无法解码H264编码的视频数据

解码H264 / RTSP流后未设置PTS