舞台灯光vs Gstreamer

舞台灯光vs Gstreamer,gstreamer,stagefright,Gstreamer,Stagefright,与stagefright相比,使用gstreamer有哪些优势?有人能指出区别吗 关于起病,有一个非常笼统的评论。如果GStreamer优于Stagefright,这是非常有争议的。不过,以下是回答您问题的要点 Stagefright对于所有编解码器仅依赖于OMX/OpenMax接口,而GStreamer编解码器插件可以写入非OMX接口。例如,甚至软件编解码器也被封装在Stagefright框架中的SoftOMXComponent中,而同样的编解码器可以很容易地转换成GstElement而不必具

与stagefright相比,使用gstreamer有哪些优势?有人能指出区别吗

关于起病,有一个非常笼统的评论。如果
GStreamer
优于
Stagefright
,这是非常有争议的。不过,以下是回答您问题的要点

Stagefright
对于所有编解码器仅依赖于
OMX
/
OpenMax
接口,而
GStreamer
编解码器插件可以写入
非OMX
接口。例如,甚至软件编解码器也被封装在
Stagefright
框架中的
SoftOMXComponent
中,而同样的编解码器可以很容易地转换成
GstElement
而不必具有
OMX
接口

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

GStreamer
中,典型的通信接口是通过具有特定
gstcap
pad
。两个组件的焊盘通过
gst\u焊盘链接
相互链接

GStreamer
提供标准模板
bin
CameraBin
PlayerBin
而在
Stagefright
中,您有一个
cameraHal
实现
camera
。对于玩家,有两种潜在的玩家引擎实现,如
StagefrightPlayer
NuPlayer

Stagefright
中,数据处理由
sink
(下游)
提取数据驱动。在
GStreamer
中,数据处理可能由
创建缓冲区并将其推送到下游(参考:)触发

最后一点,
Gstreamer
与当前特定于android的
Stagefright
相比,被广泛部署

虽然列表可以继续,但这两个框架之间有很多相似之处。比如说,

  • 这两个框架都通过
    工厂方法创建
    解析器
    编解码器
    等组件,即它们采用
    工厂
    模式

  • 这两个框架都使用
    插件
    接口来集成较新的组件,例如
    解析器


  • 我不熟悉StageFright,但我要指出的是,GStreamer提供了一些非常成熟的调试功能,包括转储GraphViz(“点”)数据,这些数据可用于构建图形回放图形的文字、可视图形,包括在构建期间,甚至在某些部分故障之后。可以使用多个调试级别,以及某些类型的筛选

    我肯定会推荐任何出于开发目的在这两个库中进行选择的人,比较它们的调试和故障排除功能,特别是在管道饥饿和同步故障排除方面


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

    @Ruchi。。我试着回答你的问题。如果你想找更具体的问题,请发表评论,因为这个问题有点开放性。多谢。这真的很有帮助。:)回答得很好。以下是我个人的看法:i)GStreamer与不推荐使用的Microsoft DirectShow过滤器非常相似,我不确定是谁影响了谁;ii)Stagefright正在向异步模型发展(ACodec取代OMXCodec;ALooper和AHandler是易于使用的库);iii)GStreamer在其问题陈述中更加成熟和全面,Stagefright的目标是解决Android的播放问题,不同的libstagefright中隐藏着供应商特有的怪癖。因此。@leesei。。我对最后一部分有一点不同的看法
    Stagefright
    变得更加通用,所有构建块都在
    Java
    层可见。尽管没有GStreamer
    功能丰富,但它确保了底层硬件功能对最终用户的影响越来越大。因此,该框架比仅解决播放问题更通用。我很想听听你对这个话题的看法。@Ganesh感谢你指出这一点,我同意
    Stagefright
    可以更通用。我完全错过了录音部分。我的重点是
    Stagefright
    仅限于Android,而不是
    Stagefright
    本身的限制。我们可以从抽象提取器/Codec/Writer/Render编写通用播放器、记录器、TranCoder和后处理器(它们非常好)。我希望将它们放在Android之外,遗憾的是,Stagefright目前的状态与平台(AOSP)源代码(例如:平台头、Android本机缓冲区和OMX编解码器的怪癖)密不可分。是的,与DirectShow和GStreamer一起工作过,它们在流媒体图形系统方面极为相似。然而,值得注意的是,这两个系统都不是此类系统的第一个示例。