问题标签 [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 回答
598 浏览

android-source - Bravia Engine 如何在 AOSP 上被调用?

我从 Google 找到了 AOSP 源代码,还从 https://github.com/sonyxperiadev/device-sony-sgp321检索了供应商的信息

索尼将其 Bravia 引擎库添加到 AOSP 以提高图像和视频质量。它可以在 libstagefright 的 awesomelocalrenderer 中调用,也可以在解码阶段调用 OMX addPlugin 时调用。

我搜索了这两个地方,那里的代码与其他原生 AOSP 源代码相比是相同的。我想知道索尼如何使用它的 BE 库?

0 投票
1 回答
2047 浏览

linux - 将视频编解码器集成到 gstreamer 或 vlc

我有一个视频编解码C-Code器。它以压缩格式作为输入并给出数据缓冲区。作为一个独立的应用程序,我可以使用.YUVYUVOpenGL

我现在的任务是使用此代码创建一个播放器(即具有播放、暂停、步进等功能)。与其重新发明整个轮子,我认为如果我能够将我的编解码器集成到gstreamer播放器代码(for Linux)中会更好。

是否有可能实现上述目标?是否有一些我可以继续使用的教程?我在网上搜索了很多,但找不到任何符合我要求的东西。任何特定于上述问题的信息或链接将对我有很大帮助。提前致谢。

-问候

0 投票
1 回答
206 浏览

android - 在 Android 中使用 Stagefright 流式传输小型音频文件

我有很多小的 .ogg 声音文件(平均大小约为 35-50KB)需要从我的 AWS S3 播放,然后播放后,它们需要缓存在设备上。大约有 200 种声音,这是完成的应用程序将使用的声音的 1/10。

我不确定 Stagefright 库是我最好的选择,或者是否需要完全不同的方法。我应该使用 Stagefright,还是选择其他选项???

0 投票
2 回答
1034 浏览

android - android硬件解码后的原始数据颜色格式是什么?

是否有用于硬件解码的恒定颜色格式,或者每个不同的 android 设备都有自己的颜色格式?

我想获取硬件解码产生的原始数据并自己渲染。

谢谢。

0 投票
2 回答
17660 浏览

android - 如何在没有 MediaExtractor 的情况下为 H264 使用 MediaCodec

我需要在没有 MediaExtractor 的情况下使用 MediaCodec,并且我正在使用 FileInputStream 读取文件。目前它不工作,它在屏幕上显示一个绿色的乱码图像。

这是整个源代码:

如果我使用 MediaExtractor,一切正常。我在使用 MediaExtractor 时通过查看 MediaFormat 获得了 SPS/PPS 值。如果我删除下面的部分,屏幕上不会显示任何内容。

我错过了什么?如何在没有 MediaExtractor 的情况下以编程方式获取 SPS/PPS 值?

0 投票
1 回答
3888 浏览

android - 在 android 中为 MPEG 2 TS 创建解复用器

我有一个要求,我需要从 MPEG2 TS(HLS STREAM) 中提取 ID3 标签。MPEG2 在播放文件方面对 android 的支持有限。但我关心的是提取 ID3 标签(不需要播放文件)。因此我不关心编解码器(编码和解码)。

我探索了以下选项:

libstagefright 和 OpenMax:由 Google 从 Android 2.0 实现的播放引擎。它有一个MediaExtractor负责从底层文件系统或 http 流中检索轨道数据和相应的元数据。但是根据这篇向Android添加视频编解码器的帖子,我需要构建自己的固件或自己的​​媒体播放器。我希望我不必走那条路。更多关于 stagefright 和 openMax 的信息可以在这里找到:

Stagefright 播放器概述

Android 的 Stagefright 媒体播放器架构

自定义包装编解码器集成到 Android

如何将解码器集成到多媒体框架

编译和使用 FFMPEG:一个完整​​的跨平台解决方案,用于录制、转换和流式传输音频和视频。我们可以使用这里提到的这个库解复用 ts 文件:

FFmpeg - 从传输流文件 (.ts) 中提取视频和音频

但我不确定是否能够从 HLS 流中提取 ID3 标签。libavformat可能能够做到这一点,但我仍然需要想出一种机制来将读取的元数据发送给我的应用程序。

为 android 编译 vlc:我已经 为 android 编译了 vlc,并在 demux 组件的传输模块中进行了一些修改以提取标签,但它无法播放我提供给它的所有流。

在浏览了这些选项之后,我仍然在解决如何实现这一点。我不想创建媒体播放器,因为我不会播放文件,也不想构建自己的固件。使用 ffmpeg 似乎是最可行的选择,但我想在不使用任何第三方或开源库的情况下尝试这个。我的问题是:

是否有可能从头开始创建一个可以在 android 上运行的解复用器?

如果可能的话,该怎么做呢?

我错过了什么选项?

我是新来的。任何帮助将不胜感激..谢谢

0 投票
1 回答
4031 浏览

android - 在 HW 模式下创建 OMXCodec 编码器

我正在尝试在 Android ICS 4.0.4 上实现硬件加速的 H264 视频编码。由于 MediaCodec 类不可用,我必须使用 stagefright API。但是当我设置HardwareCodecsOnly标志时,OMXCodec::Create 总是返回 NULL。如果我用标志 kHardwareCodecsOnly 调用 OMXCodec::findMatchingCodecs(),我得到以下列表:
- OMX.TI.DUCATI1.VIDEO.H264E
- OMX.qcom.7x30.video.encoder.avc
- OMX.qcom.video.encoder.avc
- OMX.TI.Video.encoder
- OMX.Nvidia.h264.encoder
- OMX.SEC.AVC.Encoder

所以我想这意味着硬件支持硬件编码。

当我在OMXCodec::Create中没有设置任何标志时- 编解码器创建得很好,但我猜它处于软件模式(顺便说一句,我如何检查 - 究竟创建了哪个编解码器?)

浏览 OMXCodec 源代码我发现了有趣的行:

看起来对于编码器,它总是首先尝试实例化软件编解码器。我究竟做错了什么?任何帮助将不胜感激。谢谢

这是创建 OMXCodec 的代码:

0 投票
1 回答
881 浏览

android - android MediaSource 在 jni 代码中未被识别为类

我正在尝试使用 android ndk开发简单decoder/player应用程序。我使用创建了一个项目android sdk,然后在我的项目目录中创建了一个名为 jni 的文件夹。在 jni 目录中,我创建了一个omx.cpp文件,我想在其中编写我自己的类,该类继承自 Android MediaSourcestagefright我还在stagefright我的项目中包含了头文件。我正在libstagefright.so通过dlopen在我的omx.cpp文件中使用来加载。

我使用的代码如下:

我有以下疑问:

1.在jni函数中,如果我们创建一些类对象并使用它们来调用sayMediaSource类的函数是否可以,或者我们必须创建单独的.cpp和.h文件。如果我们使用单独的文件,我们如何从jni函数调用/引用它.

2.这是制作我们自己的从MediaSource类继承的包装类的正确方法还是有其他方法。

基本上我想制作一个应用程序,它需要.mp4/.avi文件,它分离音频/视频,解码和demux渲染/播放它只使用android 。stagefrightOpenMAX

如果ffmpeg建议使用源代码,demux那么如何将其与android st agefright框架集成。

问候

0 投票
0 回答
346 浏览

android - 如何在 Ubuntu 中为 Android 构建 stagefright-plugins

我尝试在 Ubuntu ( https://github.com/omxcodec/stagefright-plugins )中为 Android 编译 stagefright-plugins但我的步骤有问题:

我在“android/frameworks/native”和“android/frameworks/av”目录中找不到“USES_NAM”标志。我也看不到“android/frameworks/native”和“android/frameworks/av”目录。你能帮我解决这个问题吗?提前致谢

0 投票
1 回答
1639 浏览

android - 使用 openmax 和 android stagefright 解复用 .mp4 文件

我如何 demux .mp4 文件并分离音频/视频,然后使用 openmax 和 android stagefright 单独渲染。

1.如果我必须在 jni 文件中实现所有功能。

2.如果我使用ffmpeg进行解复用,它如何与android stagefright集成(如果我必须将ffmpeg demuxer构建为组件并使用openmax il将其与android链接或在android jni中编写整个代码(在这种情况下我有将ffmpeg与android stagefright链接))。

3.由于android ndk不支持stagefright,如何整合两者。

问候马扬克