Gstreamer SDK,带有支持iOS8的硬件解码器

时间:2014-10-20 13:22:00

标签: ios8 video-streaming gstreamer hardware-acceleration

我一直在寻找一种在gstreamer管道中使用iOS8中的硬件解码器的方法。

我遵循以下方法:

1)从中下载包      http://gstreamer.freedesktop.org/data/pkg/ios/1.4.3/并安装在mac机器[10.9.4]

2)我已经设法在Xcode中编译示例代码,我使用下面的管道组件来解码流媒体通道中的RTP数据包。

udpsrc port=5000 ! application/x-rtp, clock-rate=90000, encoding-name=(string)H264, payload=96  ! rtph264depay ! vtdec! autovideosink sync=true

3)不幸的是它找不到vtdec或vtdec_h264组件。

4)检查库中是否有硬件解码器插件,在安装的软件包上进行了一些xplored:

下面是otool输出的Gstreamer Mach-O通用二进制文件,有3种架构。

GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-corevideobuffer.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-atdec.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-plugin.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-vtutil.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-coremediabuffer.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-dynapi.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-vtapi.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-iosassetsrc.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-avfvideosrc.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-avfassetsrc.o) (architecture armv7):
GStreamer(libgstapplemedia_a_armv7_-libgstapplemedia_la-coremediactx.o) (architecture armv7):

查找

1)上述内容并非如此,libgstapplemedia_la-vtdec.o

2)gst-plugins-bad-1.4.3 / sys / applemedia的Makefile.am有以下代码。

if HAVE_VIDEOTOOLBOX
      libgstapplemedia_la_SOURCES +=  vtenc.c  vtdec.c
      libgstapplemedia_la_LDFLAGS += -Wl,-framework -Wl,VideoToolbox
endif

问题:

1)说上述理解是正确的[如果我错了请纠正我],    我在哪里可以获得具有硬件解码功能的iOS GStreamer SDK库    可以在iOS8中使用。

2)如果没有,我们是否必须在Cerbero构建系统的帮助下自行构建GStreamer SDK?

我需要注意哪些其他怪癖?

1 个答案:

答案 0 :(得分:3)

您必须等待1.4.4版本,或者使用cerbero构建系统构建自己。来自1.4或master分支。你可以在这里得到它:http://cgit.freedesktop.org/gstreamer/cerbero/

为了构建自己,您将需要iOS8 SDK,否则不会构建硬件解码器/编码器。同样在您的应用程序中,您必须添加" -weak-framework VideoToolbox"到其他框架旁边的链接器标志。

在1.4.3及之前,vtdec / vtenc仅适用于OSX。