타조님은 가능하시다고 적었지만
저는 avformat_open_input(&gFormatCtx, "rtsp://root:root@111.111.111.111/profile1/media.smp",NULL,NULL)
av_open_input_file(&gFormatCtx,"rtsp://root:root@111.111.111.111/profile1/media.smp", NULL, 0, NULL)
두함수 모두 핸들을 리턴하지 못합니다.
검색해 보니 config을 잡을때 --enable-network --enable-protocol=tcp --enable-demuxer=rtsp --enable-decoder=h264
위의 4개옵션을 키면 된다고 하는데 위의 옵션을 켰더니
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavformat.a(rtpdec.o): in function av_register_rtp_dynamic_payload_handlers:C:/Work/FFmpegBasic/jni/ffmpeg/libavformat/rtpdec.c:89: error: undefined reference to 'ff_g726_16_dynamic_handler'
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavformat.a(rtpdec.o): in function av_register_rtp_dynamic_payload_handlers:C:/Work/FFmpegBasic/jni/ffmpeg/libavformat/rtpdec.c:89: error: undefined reference to 'ff_g726_24_dynamic_handler'
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavformat.a(rtpdec.o): in function av_register_rtp_dynamic_payload_handlers:C:/Work/FFmpegBasic/jni/ffmpeg/libavformat/rtpdec.c:89: error: undefined reference to 'ff_g726_32_dynamic_handler'
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavformat.a(rtpdec.o): in function av_register_rtp_dynamic_payload_handlers:C:/Work/FFmpegBasic/jni/ffmpeg/libavformat/rtpdec.c:89: error: undefined reference to 'ff_g726_40_dynamic_handler'
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavcodec.a(allcodecs.o): in function avcodec_register_all:C:/Work/FFmpegBasic/jni/ffmpeg/libavcodec/allcodecs.c:346: error: undefined reference to 'ff_libaacplus_encoder'
C:/Work/FFmpegBasic/obj/local/armeabi-v7a/libavcodec.a(allcodecs.o): in function avcodec_register_all:C:/Work/FFmpegBasic/jni/ffmpeg/libavcodec/allcodecs.c:346: error: undefined reference to 'ff_libspeex_encoder'
collect2: ld returned 1 exit status
/cygdrive/c/android-ndk-r8d/build/core/build-binary.mk:397: recipe for target `/cygdrive/c/Work/FFmpegBasic/obj/local/armeabi-v7a/libbasicplayer.so' failed
make: *** [/cygdrive/c/Work/FFmpegBasic/obj/local/armeabi-v7a/libbasicplayer.so] Error 1
이런 에러가 떠버리네요.
역시 검색을 또 해보았더니
"2011/01/26 날짜로
Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
어떤 같이 ffmpeg에서는 기호에 ff_을 접두어하게되었는데, 아직 그렇게되지 않는 것이 원인입니다."
라는 글을 보고서 해당 함수들을 찾아갔더니 ff가 정상적으로 붙어있습니다.
혹시나 싶어서 접두어를 제거 해보아도 마찬가지 입니다.
어떻게하면 처리를 할수있을지 궁금합니다.
그루터기님 강좌를 받아 보니, 네트워크 옵션이 빠져있네요.. 설정을 바꿔야 하는데,
ffmpeg가 버젼이 많다보니 타조님이 자료를 주시지 않는 이상 상당한 노가다가 될 듯 합니다.
ffmpeg 라이센스를 지키기 위해 ffmpeg를 사용하는 각 플레이어 제조사들은 해당 플레이어에서 사용하는 FFMPEG 소스 및 컴파일 방법을 자기 회사 홈페이지에 올려 두고 있습니다.
ffmpeg 부분을 Rockplayer나 MX, Dice player 같은 플레이어 제작 회사에서 올려둔 소스를 사용하도록 변경하시는게 어떻까 합니다.