问题标签 [stagefright]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1969 浏览

android - 可以在 App 中覆盖系统 .so 库

我必须修改 Android Media Player 的 Http Live Streaming 实现。实现在 stagefright 库下 http://androidxref.com/4.0.4/xref/frameworks/base/media/libstagefright/httplive/LiveDataSource.cpp

我认为这些库将编译为 libstagefright.so,它应该是 Android 系统的一部分。

我的问题是我是否对这个库进行一些更改并编译一个新的 libstagefright.so。如果我在我的新应用程序中加载这个新的 libstagefright.so 并调用媒体播放器,它会使用我的新 libstagefright.so 中的代码吗?

0 投票
3 回答
2380 浏览

android - 在 Android 2.3.3 上解码 h264 原始流

我正在尝试在“旧”Android 版本上解码原始 h264 流。我试过 MediaPlayer 类,似乎不支持流格式。

我可以在市场上的其他 Cam Viewer 应用程序上看到流,所以我认为必须有办法做到这一点,可能使用 NDK。

我已经阅读了有关 OpenMAX 和 Stagefright 的信息,但找不到有关流式传输的有效示例。

有人可以指出我正确的方向吗?

此外,我在几个地方阅读了有关“frameworks/av/include/media/stagefright/MediaSource.h”和其他来源的信息,但它们似乎既不在常规 SDK 中,也不在 NDK 中。这个来源在哪里?还有另一个sdk吗?

提前致谢。

更新:我收到一个 rtsp 连接。

0 投票
1 回答
1088 浏览

android - 使用 ffmpeg libx264 for android 编码 RGB565 原始数据

我有以下关于android实现的问题

  1. 各种视频编解码器有何不同,尤其是“基于流和基于帧”

  2. 在许多论坛和问题上,每个人都在谈论 SPS、PPS 等,所以我在哪里可以找到有关编解码器的足够详细信息(请提及 RFC 文档以外的内容!!)以理解它并相关地使用 ffmpeg?

  3. 这里是否可以使用内置的硬件解码器 od android 设备?如果是这样,如何?我是否需要使用 OpenMax-IL(或 AL 或 DL,我的意思是哪个是为了什么?)

  4. ffmpeg 是否支持通过 libx264 对 RGB(或 RGBA)或 RGB565(或 RGB555)输入数据进行 H264 编码?

  5. 如果我的要求只是 h264 编码和解码,我可以在没有 ffmpeg 的情况下使用 libx264 吗?如果有任何示例/指南?

0 投票
1 回答
63 浏览

android - 以下函数中的索引是什么?

为什么在MP3Extractor?

0 投票
2 回答
1862 浏览

android - 不同智能手机上的视频浏览行为(具有不同的怯场)

我在使用 videoview(或 MediaPlayer)在同一活动中的多个 videoview 中播放 rtsp 流时遇到兼容性问题。

我在这里就这个问题提出了另一个问题,但现在我知道这不是我的代码负责,因为我在不同的手机上测试了相同的软件并且它可以工作。

查看 RTSP 设置的 logcat 信息消息我看到每部手机都有不同的 stagefright 实现(android 多媒体框架):

你可以看到这里有不同的android版本和不同的stagefright,但是多个rtsp只在Lg上失败(见error here)。另一个有趣的是只有Lg使用RtspEngine,其他使用ARTSPConnection

有一种方法可以强制应用程序使用本机 stagefright(如果它存在于设备上)?

应用程序如何管理此兼容性问题?开发不兼容某些品牌手机的应用程序是不合理的

0 投票
1 回答
2036 浏览

android - 如何在我的 android 上安装 stagefright?

我听说这个声音程序据说是 Android 附带的,叫做“stagefright”,它是从终端模拟器的命令行播放音频文件所必需的。我听说过它的一个来源是:如何从命令行使用 Stagefright?

问题是 --- 我在我的 Android 设备(Aesus Nexus 7)上检查得很好,但它不存在。(要么没有“stagefright”,要么缺少它的命令行界面程序。)我怎样才能安装它——如果我不能,还有什么可以安装的东西可以让我播放音频文件从终端模拟器命令行?

我问这个是因为我无法从命令行播放音频文件是一个严重的限制。

0 投票
2 回答
830 浏览

android - 如何正确使用 libstagefright 的 MediaBuffer?

我:

  1. 创建android::MediaBufferGroup
  2. buf_group.add_buffer(new android::MediaBuffer(bufsize));在初始化时用多个填充它;
  3. buf_group->acquire_buffer(&buffer)当我需要一个缓冲区发送到某个地方时做;
  4. 用于buffer->data()获取实际内存位置以存储数据,使用set_range和设置元数据,然后将缓冲区馈送到其他组件;
  5. 另一个组件release是缓冲区,将它们重新调整回 MediaBufferGroup。

它有效,但不可靠。有时获取的缓冲区data()返回 NULL,有时程序在release()...

如何正确使用 MediaBufferGroup?我应该使用一些同步吗?

0 投票
1 回答
1327 浏览

android - Android Kitkat 4.4.2:自适应播放对 SurfaceFlinger 的影响

我在SO中遇到了关于Adaptive Playback的这个通用问题。Android Kitkat但是,我有一些具体的查询如下:

我能够理解对codec相关框架的影响。但是,有一点我无法完全理解。

在自适应播放的情况下,编解码器metadata在其输出端口上使用一个基本上抽象和打包底层缓冲区句柄(很可能是gralloc句柄)的输出端口。如果分辨率发生变化,我假设直接codec更新gralloc句柄属性并将缓冲区发送回OMX客户端而不更改端口设置。

我的第一个问题是:我的理解和假设是否正确?

如果是这样,Surfaceflinger/如何SurfaceTexture知道传入的有效负载是metadata格式的,它如何从底层实现中检索width和?heightgralloc

您能否指出相关来源,这将有助于我更好地理解这个问题?

提前谢谢了。

0 投票
2 回答
1120 浏览

android - Android MusicPlayer 使用 Stagefright 或 opencore

我读到如果media.stagefright.enable-player已设置true,则设备使用Stagefright. 在我的设备中,build.prop我看到了

当我在下面疲倦时

我托管了一个媒体播放器连接到的服务器套接字

我得到的日志是

现在我的疑问是,它是如何向我展示User-Agent: stagefright/1.1的?media.stagefright.enable-player = falsebuild.prop

如果这不是确定使用哪个的方法,我如何检测是否opencore or stagefright ?

0 投票
3 回答
2068 浏览

android - 如何从 OMXCodec 解码输出中转储 YUV

我想从解码输出中转储YUV数据。OMXCodecMediaBuffer类型。无法访问 data() 指针。

如果我尝试访问数据,由于下面的检查代码会发生崩溃。

请让我知道从中提取YUV数据的解决方案MediaBuffer