【问题标题】:Can i encode or decode video in Android using OpenCORE or StageFright?我可以使用 OpenCORE 或 StageFright 在 Android 中编码或解码视频吗?
【发布时间】:2012-11-14 06:04:30
【问题描述】:

这个 Android 框架是否提供了为一个 Android 应用开发编码和解码功能的能力?

我知道有一个名为 MediaCodec 的 4.1 高级 API 提供了编码和解码视频的功能,但我不知道它是否真的使用其中一个媒体框架作为 Stagefright 来访问编解码器。

直接使用其中一种框架进行编码或解码比使用 MediaCodec API 有哪些好处?

也许我很困惑,但我必须制作一个关于使用 Android 视频进行编码的项目,如果有人可以帮助我,我必须为此选择更好的选择...

【问题讨论】:

    标签: android media codec stagefright opencore


    【解决方案1】:

    您应该使用 MediaCodec api,而不是任何较低级别的 api。然后 MediaCodec api 将在内部使用适当的框架。这是因为 android 供应商会将他们自己的编解码器和硬件/dsp 加速编解码器集成到框架中,并将它们设置为 MediaCodec api 的默认值。他们将确保他们的编解码器与 MediaCodec api 一起工作。如果您使用 MediaCodec api,它将适用于所有设备,而与下面使用的框架无关。这就是那个 api 的用途。

    除非你特别想用 OpenCore/Stagefright 做一些测试,否则不要去那里。

    【讨论】:

    • 感谢您的回答。所以如果 Android 4.1 现在使用的是 StageFright 框架,那么,MediaCodec 将使用集成在该框架中的编解码器,不是吗?但我的问题是,在 MediaCodec API 发布之前,使用一台设备的硬件将一个视频编码为例如 h.264 的过程是怎样的?你能给我一个例子吗?直接使用框架完成任务是否存在任何好处(例如,及时)?
    • @user1735358,总是有一个高级 java api 可用于编码。如果我是对的,MediaCodec 实际上是 Java 框架内的较低级别的访问。 MediaPlayer / MediaRecorder 始终可用。添加了 MediaCodec 以提供较低级别的控制。如果您不需要较低级别的访问权限,则应使用 MediaPlayer / MediaRecorder
    • 哇,再次感谢@av501,我虽然 MediaPlayer 和 MediaRecorder 仅用于录制视频/音频并播放它。是否可以使用 MediaCodec 的硬件编码从具有该类的 cam 设备录制视频?我的项目的想法是以原始格式录制视频并使用硬件设备对其进行编码。您认为可以连接 MediaRecorder 还是我应该寻找其他课程?谢谢!!
    • @javiaf,获取原始格式是可能的,但不是有效的,它不会运行超过 10 fps,除非在最高端的手机上。我不清楚你需要实现什么。如果你想从相机捕捉,你可以捕捉原始视频。如果您想使用设备上最好的硬件编解码器进行编码,请相信我,制造商已经将其设为 MediaRecorder 的默认配置,因此您应该简单地使用它。如果您想保存 YUV 并将其从 pone 中取出以在其他地方进行编码,那么您可以这样做。
    • 这个想法是从相机捕获视频并使用硬件进行编码,以发送使用 RTP 编码的视频。这个想法的编码速度比 sw 快,但据我了解,MediaRecorder 自己制作一种 SW 编码,因此制作一种 HW 编码是没有用的,因为视频尚未编码。所以我想做的是记录,通过硬件编码,然后通过网络发送。 “如果你想保存 YUV 并将其从 pone 中取出以在其他地方进行编码,那么是的,你可以这样做”-> 你能多谈谈吗?
    【解决方案2】:

    您正在尝试做的事情是由供应商/集成商完成的。最好的解决方案是(如果您可以访问平台的自定义源代码 - > 如果没有,请使用任何免费板)以这种方式将您的硬件 enc 与 libstagefright(作为 OMX 组件)集成,您将完成 YUV 的编码通过封装成任何所需的(来自受支持的)格式,然后您可以使用一些高级 rtp api 来封装和管理流式传输(只需从谷歌叔叔关于 android 和 rtp 的回答中得出结论)。

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 2016-10-07
      • 1970-01-01
      • 2014-04-03
      • 2014-05-24
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      相关资源
      最近更新 更多