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

VideoView를 사용하여 RTSP 스트리밍 받기 질문입니다.

0 추천

구글링해서 나오는 예제 및 설명은 거의 다 실행해본 것 같습니다.

 
VLC 플레이어에서는 잘 접속되는 RTSP URL이 VIDEOVIEW 쪽으로만 오면 재생할 수 없습니다라는 메세지를 띄웁니다.
 
재생부분은
 
video.SetVideoURI(Uri.Parse("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov");
video.RequestFocus();
video.Start();
 
이렇게 사용하고 있습니다.
 
패킷을 캡쳐해보는데까지 온 상황입니다.
 
VLC에서 나가고 들어오는 패킷 and VideoView를 통해 나가고 오는 패킷을 비교해본 결과
 
VLC쪽에서는 RTSP 요청을 OPTIONS -> DESCRIBE -> SETUP -> PLAY 이런식으로 했고
VideoView쪽에서는 DESCRIBE -> SETUP -> PLAY 이런식으로 되었습니다.
 
OPTIONS가 빠져서 그런건지 모르겠지만 여튼 영상이 재생될 때 들어오는 패킷은 두쪽 다 꾸준히 들어왔습니다.
video.Start()로 넘어가기 전까지는 패킷은 꾸준히 들어오지만 VideoView에서 재생 화면은 나오지 않았습니다.
 
그 뒤로 video.Start()를 실행하게되면 잘 넘어오던 패킷이 멈추고 재생할 수 없습니다. 라는 에러 메세지를 띄우는 것입니다.
 
왜 이런 문제가 생기는지 3일간 구글링 및 머리를 쥐어짜보아도 답이 나오지 않아 글을 올려봅니다.
 
무엇을 잘못하고 있는지.. 힌트라도 부탁드립니다. ㅠㅠ
chrisb (120 포인트) 님이 2015년 6월 30일 질문
LG G2로 테스트 해보니, 화면이 깨지기는 하지만 나오긴 하네요.

h264/aac 영상이라 어지간하면 동작해야 할텐데..
테스트 하신 단말이 뭔지는 몰라도 제조사에서 RTSP 를 제대로 붙이지 않는 듯 합니다.
모든 단말을 대응하려면 aucd29  말씀 처럼 써드파티 라이브러리를 사용하셔야 할 듯 합니다.

2개의 답변

0 추천
video view 로는 rtsp 를 만족 못 시킵니다. 그래서들 다들 ffmpeg 를 포팅해서 사용하고 있구요

vlc 가 오픈소스 이니 해당 코드를 컴파일 해서 진행하시는 편이 나아보이네요
aucd29 (218,390 포인트) 님이 2015년 6월 30일 답변
0 추천
avi 파일을 혹시 재생한건 아니신지

안드로이드는 avi 파일을 지원하지 않습니다

제가 확인해본 바 vlc로 avi 파일을 스트림 실행시 트랜스코딩에서

Video-H.264+MP3(MP4) 선택 뒤 해당 설정에서 사운드를 MPEG4 Audio(AAC)로 변경하여 재생해주니

안드로이드 Videoview에서 정상적으로 재생되고 사운드도 들리는걸 확인했습니다.
네티아JM (140 포인트) 님이 2019년 11월 8일 답변
...