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

안드로이드 스트리밍..도움부탁드립니다(__)

0 추천

 

지금까지 시도해본 것들 먼저 나열해보겠습니다.


1. 다윈서버, 와우자서버 라즈베리파이 포팅 실패

2. VLC 라즈베리파이 설치 스트리밍 서버 오픈

3.VLC rtsp 로 스트리밍 출력 코덱 : h264 , 컨테이너 포맷 : ts

 1)pc VLC에서는 스트리밍 성공. 2초정도 딜레이 발생.

 2)안드로이드 VLC에서 스트리밍 성공 2초정도 딜레이

 3)안드로이드 videoview 스트리밍 실패 (재생할수없는 동영상입니다. toast창)

 

4.VLC 에서 HTTP 방식으로 스트리밍 출력.

 1)PC VLC에서 스트리밍 성공. (딜레이 약 3초)

 2)안드로이드 VLC에서 스트리밍 성공. (딜레이 약 2초)

 --->안드로이드 VLC에서 스트리밍 성공? Videoview에서 시도해보자.

 ---> 접속은 되나, 첫 화면에서 멈추어버리는 증상 발생.

 

안드로이드 기본 rtsp 파서가 TS 컨테이너를 지원하지 않는다하여서, RAW방식을 찾아봤으나, VLC에서는 RTSP에 TS/PS 방식만 지원하므로 다른 방식을 알아봤습니다.

 

4.VITAMIO

 

안드로이드 라이브러리 vitamio를 디펜던시에 컴파일 하여서 vitamio 의 videoview를 이용해보았지만, 실행은 되나, 멈춤증상과 끊김현상이 발생이 심하여서 사용할 수가 없었습니다. 이는 저말고 시도해본 다른 사람들도 마찬가지더군요.(킷캣버젼)

아래는 에러메세지입니다.

 

보아하니 뭔가 디코딩 하면서 문제가 있는 듯 했습니다.. 다음 팟 플레이어로 pc에서 할때는 잘 디코딩이 되었는데 , vitamio에서 코덱 h264, rtsp프로토콜인데 뭐가 문제인지 모르겟네요.

다른 킷캣 디바이스로 테스트해본결과 같은 문제가 있었습니다..

혹시 이 에러 관련하여서 지식있으신분 알려주시면 감사하겠습니다.

 

 

 

익명사용자 님이 2016년 2월 9일 질문

1개의 답변

0 추천
 
채택된 답변
RTSP의 경우 일반적으로는 컨트롤만 TCP를 사용하고, 데이터는 UDP로 전송하기 때문에,  전송 중 데이터가 드랍이 될 수 있으며, 그 경우 영상을 제대로 디코딩 못해서 화면을 표시 못하기 때문에, 끊기거나, 멈추게 보입니다.

해결책은 아래와 같습니다.

1. 드랍이 되지 않게  보다 좋은 망을 사용한다.(wifi를 사용하는 것보단. PC처럼 선을 꽂아 사용하고 wifi를 꼭 사용해야한다면, 간섭이 좋은데서 wifi-direct를 사용하던지, wifi 속도를 최적으로 세팅)

2. 전송 시  해상도나 FrameRate를  떨어뜨려,  데이터 사이즈를 줄여  드랍이 적게 일어나게 한다.

3. RTSP 전송시 데이터도 TCP로 전송하게 한다.(이 경우 딜레이가 발생할 수 있습니다.)
익명사용자 님이 2016년 2월 11일 답변
답변해주신거처럼 그럴 가능성도 충분히 있겠네요. 그런데 와이파이존 바로 앞에서 하고 그러는데도 이렇게 끊길수가있는가 싶기도하네요ㅠ  해상도도 380 *180으로 굉장히 낮게했거든요 음 근데 http 프로토콜로하면 tcp/ip 계층이용하는데, 이런경우는 확실히 딜레이는 심하긴하지만 끊김이없는걸로보아서 드랍쪽이 맞는거 같기도합니다.
keyFrame interval은 몇으로 설정하셨는지요?
I-Frame이 많을 경우 데이터 사이즈가 늘어나지만, I-Frame이 너무 적을 경우 I-Frame이 드랍되면, 이후 영상이 제대로 디코딩이 되지 않기 때문에 깨진 화면이 오래 유지됩니다. I-Frame interval을 1초 정도로 변경하시고, FrameRate를 10fps로 변경해보세요..
...