마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드폰에서 ffmpeg 를 이용하여 rtsp 스트리밍 성공하신분들좀 도와주세요ㅠㅠ

0 추천
안녕하세요... ffmpeg를 이용한 rtsp 스트림 플레이어를 만들어 휴대폰에서 실행하는 프로그램을 하고 있습니다.

남은그루터기님의 강의자료를 따라서 컴파일까지 하였고 휴대폰에 올리는것까지 성공하였습니다.

그런데 휴대폰에 있는 동영상 재생(*.wmv)은 잘 되는데 ip 카메라로부터 들어오는 rtsp 스트리밍 데이타가 처리되질 않고 있습니다

IP 카메라로 부터 rtsp 스트림을 받아서 휴대폰에서 플레이를 하려고 하고 있습니다.

rtsp 주소를 주면 ffmpeg 버젼에 따라서 av_open_input_file 에서 -2가 리턴되기도 하고,  avcodec_find_decoder(gVideoCodecCtx->codec_id);에서 null 값이 리턴되기도 합니다.

2주가 넘게 이 부분에서 넘어가질 못하고 있네요... rtsp로 성공하셨다는 분들 많으신던데요.. 에고... 도움을 청합니다. 부탁 드려요
익명사용자 님이 2015년 9월 7일 질문

1개의 답변

0 추천
config.h, config.mak 쪽에 rtsp가 enable이 되어 있는지 부터 확인 해 보세요.

disable 상태로 되어 있다면,

config 파일 생성시

--enable-network  --enable-protocol=tcp --enable-demuxer=rtsp  등을 넣어서 config.h, config.mak  파일의 RTSP 기능을 enable 시킨 후 make로 빌드 하셔야 합니다.

아래 예제입니다.

http://bluexmas.tistory.com/m/post/272
익명사용자 님이 2015년 9월 7일 답변
먼저 답변 감사드립니다.
말씀하신것 처럼 config.sh에서 넣어서 컴파일까지 했습니다.
config.h를 열어보면 말씀하신 부분이 들어가 있고, 링크해 주신 사이트도 참고를 했습니다.
시험을 하기 위하여 휴대폰에 올리기전에  adb shell을 이용해서 rtsp 스트리밍 데이타를 받으면 사이즈를 출력하도록 실행호일을 만들어 올려서도 해 보았는데 스트리밍 데이타를 open하여 잘 출력하였습니다.(물론 이때 프로그램은 c 형식이고 main을 만들어서 확인해 보았습니다.)  그런데 자바와 연동하여 안드로이드용 실행하일을 만들어 휴대폰에 올리면 동작이 안됩니다.(위에 말씀 드린 현상)  

//config.sh
export TMPDIR=c:/ffmpegtmp
export ANDROID_ROOT=/cygdrive/c/cygwin64/home/Administrator/android-toolchain

./configure --target-os=linux \
--arch=arm \
--enable-cross-compile \
--cc=$ANDROID_ROOT/bin/arm-linux-androideabi-gcc \
--ar=$ANDROID_ROOT/bin/arm-linux-androideabi-ar \
--cross-prefix=$ANDROID_ROOT/bin/arm-linux-androideabi- \
--extra-cflags="-marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon" \
--extra-ldflags="-Wl,--fix-cortex-a8" \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-devices \
--disable-filters \
--disable-yasm \
--disable-parser=dca \
--disable-decoder=dca \
--enable-network \
--enable-protocol=tcp \
--enable-demuxer=rtsp \
--enable-decoder=h264

다시한번 부탁 드립니다.
...