- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 Android 2.3 或更高版本上直接访问 libstagefright.so
以从 JNI
层解码 H.264
流?
最佳答案
如果您的目标是解码基本 H.264
流,那么您的代码必须确保提取该流,编解码器特定数据
是提供给编解码器的主要是SPS
和PPS
数据,并且帧数据连同时间戳一起提供给编解码器。在所有 Android
版本中,最常见的接口(interface)是 OMXCodec
,它是对底层 OMX
组件的抽象。
在 Gingerbread (Android 2.3) 和 ICS (Android 4.0.0) 中,如果您想创建解码器,最好的方法是创建一个 OMXCodec
组件并通过MediaSource
接口(interface),即您的包装器代码被建模为 MediaSource
和 OMXCodec
从该源读取并执行解码。
Android 2.3 视频解码器创建链接:http://androidxref.com/2.3.6/xref/frameworks/base/media/libstagefright/AwesomePlayer.cpp#1094
Android 4.0.0 视频解码器创建链接:http://androidxref.com/4.0.4/xref/frameworks/base/media/libstagefright/AwesomePlayer.cpp#1474
主要挑战如下:
将输入建模为 MediaSource
。
读取包装器代码以从编解码器读取缓冲区并对其进行处理并将其释放回编解码器。
为了简化起见,您可以查看 stagefright
命令行可执行代码,如 http://androidxref.com/4.0.4/xref/frameworks/base/cmds/stagefright/stagefright.cpp#233 所示。
但是,如果您的程序基于 JellyBean(Android 4.1.x、4.2.x)以上版本,那么这些会稍微简化一些。从您的 JNI 代码中,您可以创建一个 MediaCodec
组件并使用它进行解码。要将其集成到您的程序中,您可以引用 http://androidxref.com/4.2.2_r1/xref/frameworks/av/cmds/stagefright/SimplePlayer.cpp#316 中的 SimplePlayer
实现。
关于h.264 - 直接访问StageFright.so以从Android中的JNIlayer解码H.264流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128960/
如何从命令行使用 Stagefright?可能吗? 最佳答案 是的,如果您的设备已 root 并且可以访问命令行,则可以从命令行使用 stagefright。这是我的 android 开发板的输出:
我有一个应用程序将视频从设备流式传输到远程计算机。尝试设置帧速率时,我不断得到: ERROR/StagefrightRecorder(131): Failed to set frame rate to
我在最近使用 MediaPlayer.setLooping(true) 更新 android 操作系统(特别是 Xoom 上的 3.2)时遇到了一个大问题;将不再循环 wav 或 ogg 文件,循环之
与 stagefright 相比,使用 gstreamer 有哪些优势?谁能指出其中的区别。 最佳答案 一开始,一个非常笼统的评论。如果GStreamer 是非常值得商榷的。优于 Stagefrigh
当 Android 浏览器打开它可以播放的媒体文件时,内置的(stagefright?)媒体播放器会打开并播放它。该媒体的标题根据 URL 显示在播放器对话框中。 本例中的 URL 是 http://
我想在我的 Android 电影播放器中使用 stagefright 进行硬件加速解码 基于 FFmpeg - 版本 0.10.2 “自由”。我已经成功构建了所有 使用工具目录中的构建脚本的库。但
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我的理解: 1) OpenCore/Stagefright 都是Android中的多媒体框架。 2) OpenCore 替换为 Stagefright。 我不明白什么? 我在哪里可以找到诸如哪个版本支
我想在我的应用程序中播放 .ts 视频文件。我没有办法做到这一点。我怀疑在 Android 中是否可以这样做。 我听说过 Stagefright 框架。所以请告诉我如何在我的应用程序中使用 Stage
我目前正在开发一个应用程序,它需要录制音频、将其编码为 AAC、流式传输,然后反向执行相同的操作 - 接收流、解码 AAC 和播放音频。 我使用 MediaRecorder 成功录制了 AAC(包装在
在制造商和/或设备之间使用 Stagefright 是否有任何保证一致性? 虽然 Android 在 2.x 中引入了 Stagefright,但是有什么东西可以阻止制造商对其进行更改吗?截至 ICS
我浏览了这个链接和其他一些链接, khronos OpenMax_Development_Guide bellagio_openmax_il_open_source_implementation_en
我想在android 手机中使用libstagefright.so 进行媒体操作。我探索了 this 中给出的示例页。我一直在尝试实现相同的。在为多个 OMXCodec 实例测试此实现时,它的输出缓冲
我将一个 SurfaceView 表面从 Java 传递到 JNI,在那里我从该表面获取 native 窗口。 Stagefright 从 mp4 文件解码 h264 帧。在解码过程中,我调用 ANa
我正在尝试编译一些 NDK code (通过 ndk-build ),但我得到这个错误: [armeabi] Compile++ thumb: wfd_jni 我尝试在 Android Studio
我需要在 Android 2.3+ 上将 h264 文件解码为 YUV。据我所知,我需要与 Stagefright 沟通,因为这是现在关闭对 OpenMAX IL 实现的访问后的唯一方式。对于这个问题
我需要确定媒体播放器是否正在使用 opencore 媒体框架,以便我可以禁用对我的流的搜索。 opencore 框架似乎在搜索时无声无息地失败了,我很难相信他们允许将其投入生产,但事实似乎确实如此。
我正在尝试使用带有 Stagefright 库的硬件来解码 h264 视频。 我在 here 中使用了一个示例.我在 MedaBuffer 中获取解码数据.用于渲染 MediaBuffer->data
我的要求是能够在我的 Android 应用程序中播放实时视频流。流将通过 RTSP/RTP。我无法控制来源;看起来 RTP 负载不符合开发人员指南中列出的要求 Video encoding recom
我正在为 android 开发 H264 H/W 加速视频解码器。到目前为止,我已经使用了一些库 MediaCodec、Stagefright、OpenMax IL、OpenMax AL 和 FFmp
我是一名优秀的程序员,十分优秀!