首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stagefright vs Gstreamer

Stagefright vs Gstreamer
EN

Stack Overflow用户
提问于 2013-04-04 19:04:26
回答 2查看 3.9K关注 0票数 5

使用gstreamer比使用stagefright有什么优势?谁能指出其中的区别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 22:58:51

一开始,有一条非常普通的评论。GStreamer是否比Stagefright更有优势是一个很有争议的问题。然而,回答你的问题的一些要点如下所示。

Stagefright只依赖于所有编解码器的OMX / OpenMax接口,而GStreamer编解码器插件可以在non-OMX接口上编写。例如,即使是软件编解码器也被封装到Stagefright框架中的SoftOMXComponent中,而同样的代码也可以很容易地转换为GstElement,而不一定要有OMX接口。

Stagefright中,两个组件之间的通信接口非常通用,通常是MediaBuffer。这不是hard绑定,而是通过粘合层,即OMXCodecMediaExtractorAwesomePlayer的实现,更容易实现。

GStreamer中,典型的通信接口是通过具有特定GstCapsPads进行通信。两个组件的焊盘通过gst_pad_link互连。

GStreamer提供了像CameraBinPlayerBin这样的标准模板bins,而在Stagefright中,您有一个用于cameracameraHal实现。对于播放器,有两种可能的播放器引擎实现,如StagefrightPlayerNuPlayer

Stagefright中,数据处理由sink (下游) PULL-ing data from source驱动。在GStreamer中,数据处理可能通过source创建缓冲区和PUSH-ing将其推送到下游来触发(参考:here)。

最后一点,与目前特定于安卓的Stagefright相比,Gstreamer被广泛部署。

虽然这个列表还可以继续,但这两个框架之间有很多similarities。例如,

  1. 这两个框架都通过Factory Methods创建了类似parserscodecs的组件,即它们采用了Factory框架采用了plugin接口来集成较新的组件,例如parsers.
票数 16
EN

Stack Overflow用户

发布于 2017-06-08 07:33:25

我不熟悉StageFright,但我要指出的是,GStreamer提供了一些非常成熟的调试功能,包括转储GraphViz (“点”)数据,这些数据可以用来构建具象回放图形的文字、可视化图形,包括在构造过程中,甚至在某些类型的部分失败之后。有多个调试级别可用,以及某些类型的过滤。

我绝对建议任何人出于开发目的在这两个库之间进行选择,比较它们的调试和故障排除能力,特别是在排除流水线饥饿和同步故障方面。

(哦,顺便说一下,将这些点转储转换为SVG是最好的格式。我通常在Firefox中打开它们。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15809365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档