2014-10-20 2 views
1

gstreamer 파이프 라인의 iOS8에서 하드웨어 디코더를 사용할 수있는 방법을 찾고있었습니다.iOS8 용 하드웨어 디코더가있는 Gstreamer SDK

I 접근법 이하 따랐다

: http://gstreamer.freedesktop.org/data/pkg/ios/1.4.3/에서 패키지를 다운로드 및 I는 엑스 코드 샘플 코드를 컴파일하는 데에 성공했다 [10.9.4]

2) MAC 시스템에 설치

1) , 그리고 김이 나는 채널에서 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 구성 요소를 찾을 수 없습니다. 하드웨어 디코더 플러그인 라이브러리 내부의 installaed 패키지 조금 xplored 경우

4)를 확인하기 :

을 아래 3 아키텍처와 gstreamer를 마하 O 유니버설 바이너리 위에 otool의 출력이다.

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-플러그인 - 나쁜 1.4.3의 Makefile.am/sys/applemedia에는 ​​다음과 같은 코드가 있습니다.

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

는 질문 :

1) 위의 이해 [만약 내가 잘못 나 수정하시기 바랍니다, 은 어디에서 하드웨어 디코딩 기능과 아이폰 OS있는 GStreamer SDK 라이브러리를 얻을 수있는 올바른 미루어있는 iOS8에서 을 사용할 수 있습니다.

2) 그렇지 않다면 Cerbero 빌드 시스템을 사용하여 GStreamer SDK를 자체적으로 빌드해야합니까?

내가 알고 있어야하는 다른 변칙은 무엇입니까?

답변

2

1.4.4 릴리스가 나올 때까지 기다리거나 cerbero 빌드 시스템으로 스스로를 빌드해야합니다. 1.4 또는 master 브랜치 중 하나. 여기에서 얻을 수 있습니다 : http://cgit.freedesktop.org/gstreamer/cerbero/

직접 제작하려면 iOS8 SDK가 필요합니다. 그렇지 않으면 하드웨어 디코더/인코더가 제작되지 않습니다. 또한 응용 프로그램에서 다른 프레임 워크 옆의 링커 플래그에 "-weak-framework VideoToolbox"를 추가해야합니다.

1.4.3 이전 버전에서 vtdec/vtenc는 OSX에서만 사용할 수있었습니다.

관련 문제