问题标签 [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.
android - 如何在 android 源代码中调用我的自定义解码器
我正在尝试将我的软件 HEVC 解码器添加到 android 源代码中。我希望生成libstagefright.so文件。
我提到了其他类似的问题,对我没有太大帮助。我无法通过以下问题或参考指南获得清晰的画面。
1) 将编解码器集成到 Android 多媒体框架中。
2)集成自定义解码器,在android上播放,同时显示fps。
3)如何注册 OMX 内核以添加新的解码器。
有人可以帮助我将新的自定义解码器与 Android 集成的步骤。
现在,我刚刚添加到 media_codecs.xml 和{ "OMX.google.h265.decoder" , "hevcdec" , "video_decoder.hevc" }
SoftOMXPlugin.cpp 文件中。
需要编辑哪些其他文件才能将新格式添加到 android 源代码中?哪些函数调用我的解码器源代码(softomxcplugin 源文件是否调用我的解码器?)。
android - Android MediaCodec 是否使用硬件编解码器?
我对 Android 使用什么编解码器感到困惑MediaCodec
?
从以下链接:
我能感觉到,MediaCodec
用于硬件编码。
但是,当我看
Dave Burke 在 2012 年 Google 峰会上发表的“Android 中的新低级媒体 API”演示文稿是一个框架,它提供了一种通过HAL 层MediaCodec
引入新编解码器的架构。OMX IL
[如果我错了,请纠正我?] 这意味着,它可以是硬件编解码器,也可以是软件编解码器。
我如何确保是否使用了硬件编解码器?
android - MediaCodec如何在Android中找到框架内的编解码器?
我试图了解 MediaCodec 如何用于硬件解码。
我对android内部的了解非常有限。
这是我的发现:
有一个 xml 文件表示 android 系统中的编解码器详细信息。
这意味着,如果我们使用媒体编解码器从 Java 应用程序创建编解码器
它应该在 xml 文件的帮助下找出相应的编码器。
我在做什么?
我试图弄清楚我们的代码的哪一部分正在读取 xml,并根据给定的“类型”找到编解码器。
1)应用层:
2) MediaCodec.java -> [框架/base/media/java/android/media/MediaCodec.java ]
3)
4) JNI 实现 -> [ frameworks/base/media/jni/android_media_MediaCodec.cpp ]
来自 frameworks/base/media/jni/android_media_MediaCodec.cpp
我对这种流动感到震惊。如果有人指出如何推进它会很有帮助。
谢谢。
c++ - Android MediaPlayer / Stagefright 从 RTSP 服务器读取 SDP 崩溃
我正在尝试使用 Android 的 MediaPlayer 类来播放 RTSP 流。MediaPlayer 调用一个名为 stagefright 的本地库来实现这一点。该库和整个媒体框架因以下错误而崩溃:
所以似乎很明显错误是什么 - 断言在nalType
应该是 7 时失败,但结果却是 22。我不明白为什么会这样。对于上下文,RTSP 流的 SDP 包含一个属性sprop-parameter-sets
,它是一组 base64 编码的字节。nalType
似乎是指 base64-decoding 结果的第一个字节sprop-parameter-sets
。在本例中,这是 base64 编码的版本:
解码后,应该是这样的:
以下是来自 Android 4.4 源代码的相关摘录APacketSource.cpp
:
第一个字节 0x67 在被屏蔽后应该计算为 0x07。不知何故,它的值是 0x16。我不知道为什么会这样,尽管我怀疑nal->data()
.
我可以提供打印到日志的堆栈跟踪,但它非常大,我不确定它是否相关。为什么这个断言失败了?
android - 在 Jelly bean 4.1.1 划艇 DM3730 中启用硬件编码器
请执行我有关该问题的更长描述。
我有一个带有 DM3730 处理器的定制板,并从
目标: 启用硬件解码器。
2.1) 为此,我需要 OMAX-IL 接口。因此查看了从 TI 下载的源代码。但是我在hardware/ti/下找不到 代表 OMX 实现的 omap3/ 目录。
2.2)因此从AOSP果冻豆代码下载:
2.3)根据 https://source.android.com/devices/media.html
2.4) 更改了media_codec.xml以保留以下条目:
2.5)根据[注:我用最新的] IE:DVSDK构建DSP
首先想,想确认一下是否是正确的做法?或者我需要注意哪些其他基础?
我击中了哪里?
失败在
3.2 使用媒体播放器播放高清视频。下面是logcat。
我试过#dspexec -v
查看 libdspbridge 的代码后,它打开设备文件 /dev/dsplink,并枚举设备 [我不确定它在做什么],但由于向设备发送 ioctl,枚举失败。
http://androidxref.com/4.1.1/xref/hardware/ti/omap3/dspbridge/libbridge/dsptrap.c
DSPTRAP_Trap 将 dwResult 返回为 -1 。
请指出我的问题在哪里?
更新:
发现:
1) dsp-bridge, dsp-link 两个驱动程序都不同,以及为 dsp-link 构建的 DSP,我正在尝试使用 dsp-bridge。
android - OpenCore 和 Stagefright 的区别
我的理解:
1) OpenCore
/Stagefright
两者都是Android中的多媒体框架。
2)OpenCore
被替换为Stagefright
.
我不明白的是?
我在哪里可以找到诸如哪个版本支持哪个媒体框架之类的信息?
例如:我不确定 Jelly Bean 是否同时支持OpenCore
和Stagefright
?
请帮忙!!!
android - 表面记录:颜色格式问题
我目前正在尝试Surface
通过命令行screenrecord
实用程序记录一个。根据实现,框架将video encoder
组件的颜色格式设置为OMX_COLOR_FormatAndroidOpaque
. 因此,video encoder
被迫从gralloc
句柄中检索颜色格式。
执行此用例时,video encoder
遇到BGRA
Surface
. 因此,我试图找到答案的问题是:
在 Miracast 的情况下,编码器的输入是通过SurfaceMediaSource
. 在记录的情况下,通过接口提供Surface
输入表面。MediaCodec
GraphicBufferSource
应该在内部处理从空间RGB
到空间的颜色转换,还是更好地引入编码器的源抽象源?YUV
video encoder
SurfaceMediaSource
gralloc
android - 如何在android上将相机帧编码为mp4
我从640x480 (对我来说足够)的 android 相机中获取相机预览帧,并对它们进行一些修改。但现在我需要将它们编码为新MP4
文件(带音频)。
这怎么可能?由于许可证不太好,我无法使用ffmpeg
,但我找到Stagefright
了应该能够做到这一点的框架。但是我没有找到任何官方文档或教程来做我需要做的事情。
请问有没有办法用这个框架做到这一点?我不需要代码,我会很高兴为我指出正确的方向。
android - StagefrightRecorder.so 的 Android.mk 文件在哪里
我正在使用 Android 4.4.2 源代码。
编译源代码后,我注意到StagefrightRecorder.so
out 文件夹中有文件。我现在正在学习StagefrightRecorder.cpp
,我打算重写它。所以我想知道 . 的Android.mk
文件在哪里StagefrightRecorder.so
。(我不熟悉源代码,所以我认为这Android.mk
可能会有所帮助。)
StagefrightRecorder.cpp
和都StagefrightRecorder.h
在文件夹中frameworks/av/media/libmediaplayerservice
。该文件夹中有一个Android
.mk 文件,但该文件用于创建libmediaplayerservice
模块,它调用LOCAL_SHARED_LIBRARIES
StagefrightRecorder
.
有人知道吗?谢谢!
android - [Android]为什么我们还可以使用MediaRecorder的setOutputFile(String path)?
我正在尝试提取的muxer部分MediaRecorder
,所以我现在正在学习Android 4.2.2的源代码,无论如何,这并不重要。我在这里有一个问题。大约setOutputFile(String path)
是MediaRecorder.java
.
的调用结果MediaRecorder.java
是
但在 中StagefrightRecorder.cpp
,它说
那我们怎样才能继续使用setOutputFile(String path)
呢MediaRecorder
?我真的不明白。