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

VideoView Media server died!

0 추천

안녕하세요, 오랜말에 질문 올립니다.

다름이 아니라 현재 ip camera 와 rtsp로 실시간 영상 뷰어를 만들고 있는데 도저히 해결 안되는 점이 있어 글 올립니다.

ip cam(1280x720(h.264))설정 후 확인시 정상적으로 영상이 videoview에 보여집니다.

그러나 영상 사이즈(1920x1080)을 높이거나 fps를 높게 설정 후 테스트하면  아래와 같은 에러가 발생합니다.

...

03-18 15:15:07.794 30934-30947/gaus.danny.test.garocam W/AudioSystem: AudioFlinger server died!
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam W/IMediaDeathNotifier: media server died
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam V/MediaPlayer: died
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam V/MediaPlayer: message received msg=100, ext1=100, ext2=0
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam E/MediaPlayer: error (100, 0)
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam V/MediaPlayer: callback application
03-18 15:15:07.804 30934-31027/gaus.danny.test.garocam V/MediaPlayer: back from callback
03-18 15:15:07.804 30934-30934/gaus.danny.test.garocam E/MediaPlayer: Error (100,0)
03-18 15:15:07.804 30934-30934/gaus.danny.test.garocam D/VideoView: Error: 100,0

근 3일째 원인을 찾고 있으나 도저히 답을 찾지 못해 이렇게 질문을 남깁니다.

도와주십시오 ㅠ.ㅠ

ipcam 연결 소스는 아래와 같습니다.

Uri uri = Uri.parse(RTSP_URL);

mVideoView.setVideoURI(uri);
mVideoView.setOnErrorListener(mOnErrorListener);
mVideoView.requestFocus();
mVideoView.start();

 

 

간지남대니 (180 포인트) 님이 2016년 3월 18일 질문

2개의 답변

0 추천
테스트하는 기기가 그정도를 처리할 만큼 퍼포먼스를 내지 못하는 것 같네요.

사양이 더 좋은 기기로 테스트해서 정상동작하는지 확인해보세요.
익명사용자 님이 2016년 3월 18일 답변
현재 갤럭시 A5 (os 5.1.1) 테스트 중입니다. ㅠ.ㅠ
0 추천
미디어 서버가 왜 죽었는지 위에 나올듯 한데.. 아무 내용 없나요?

제 생각에는 용량이 늘어나서 드랍되는 가능성이 높아졌고, 드랍이 발생했을 때  RTP 패킷을 조합을 시도 하다 CHECK 메크로에서 죽은 것으로 생각됩니다.

로그에서 CHECK로 검색해 보세요.. 만약 검색해서 나온다면  드랍이 발생하지 않게  TCP를 사용하던지, 드랍이 일어나도 죽지 않도록  MediaPlayer가 아닌 ThirdParty 플레이어를 사용하셔야 할 듯 합니다.]

 

CHECK 메크로가 보이지 않는다면, 풀로그를 올려주시면 추가 확인 해보겠습니다.
익명사용자 님이 2016년 3월 18일 답변
2016년 3월 18일 수정
답변감사합니다. 아래 로그 올립니다. ip camera 연결부터 오류까지 로그입니다.
03-18 16:22:28.424 15040-15040/gaus.danny.test.garocam D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
03-18 16:22:28.704 15040-15040/gaus.danny.test.garocam I/InjectionManager: dispatchOptionsItemSelected :gaus.danny.test.garocam.GaroCamMainActivity
03-18 16:22:28.764 15040-15040/gaus.danny.test.garocam I/MediaPlayer: Need to enable context aware info
03-18 16:22:28.764 15040-15040/gaus.danny.test.garocam V/MediaPlayer-JNI: native_setup
03-18 16:22:28.764 15040-15040/gaus.danny.test.garocam V/MediaPlayer: constructor
03-18 16:22:28.774 15040-15040/gaus.danny.test.garocam V/MediaPlayer: setListener
03-18 16:22:28.784 15040-15040/gaus.danny.test.garocam V/MediaPlayer-JNI: get_session_id()
03-18 16:22:28.804 15040-15040/gaus.danny.test.garocam D/RingtoneManager: Can't get current user. return default user
03-18 16:22:28.824 15040-15040/gaus.danny.test.garocam D/MediaPlayer: setDataSource IOException happend :
                                                                      java.io.FileNotFoundException: No content provider: rtsp://admin:gaus4533@192.168.10.233:554/trackID=2
                                                                          at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1117)
                                                                          at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:970)
                                                                          at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:897)
                                                                          at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1109)
                                                                          at android.widget.VideoView.openVideo(VideoView.java:376)
                                                                          at android.widget.VideoView.setVideoURI(VideoView.java:270)
                                                                          at android.widget.VideoView.setVideoURI(VideoView.java:253)
                                                                          at gaus.danny.test.garocam.GaroCamMainActivity.onOptionsItemSelected(GaroCamMainActivity.java:585)
                                                                          at android.app.Activity.onMenuItemSelected(Activity.java:3201)
                                                                          at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:361)
                                                                          at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:147)
                                                                          at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
                                                                          at android.support.v7.app.AppCompatDelegateImplV7.onMenuItemSelected(AppCompatDelegateImplV7.java:621)
                                                                          at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
                                                                          at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
                                                                          at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
                                                                          at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
                                                                          at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:619)
                                                                          at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
                                                                          at android.view.View.performClick(View.java:5246)
                                                                          at android.widget.TextView.performClick(TextView.java:10572)
                                                                          at android.view.View$PerformClick.run(View.java:21256)
                                                                          at android.os.Handler.handleCallback(Handler.java:739)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          at android.os.Looper.loop(Looper.java:145)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6917)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at java.lang.reflect.Method.invoke(Method.java:372)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
03-18 16:22:28.824 15040-15040/gaus.danny.test.garocam D/MediaPlayer: Couldn't open file on client side, trying server side
03-18 16:22:28.834 15040-15040/gaus.danny.test.garocam V/MediaPlayer: setVideoSurfaceTexture
03-18 16:22:28.834 15040-15040/gaus.danny.test.garocam V/MediaPlayer-JNI: setAudioStreamType: 3
03-18 16:22:28.834 15040-15040/gaus.danny.test.garocam V/MediaPlayer: MediaPlayer::setAudioStreamType
03-18 16:22:28.834 15040-15040/gaus.danny.test.garocam V/MediaPlayer: setVideoSurfaceTexture
03-18 16:22:28.834 15040-15040/gaus.danny.test.garocam V/MediaPlayer: prepareAsync
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam W/IMediaDeathNotifier: media server died
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam V/MediaPlayer: died
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam V/MediaPlayer: message received msg=100, ext1=100, ext2=0
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam E/MediaPlayer: error (100, 0)
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam V/MediaPlayer: callback application
03-18 16:22:29.504 15040-15639/gaus.danny.test.garocam V/MediaPlayer: back from callback
03-18 16:22:29.504 15040-15040/gaus.danny.test.garocam E/MediaPlayer: Error (100,0)
03-18 16:22:29.504 15040-15040/gaus.danny.test.garocam D/VideoView: Error: 100,0
03-18 16:22:29.504 15040-15040/gaus.danny.test.garocam V/MediaPlayer-JNI: reset
03-18 16:22:29.504 15040-15040/gaus.danny.test.garocam V/MediaPlayer: reset
03-18 16:22:29.524 15040-15051/gaus.danny.test.garocam W/AudioSystem: AudioFlinger server died!
로그상은 rtsp://admin:gaus4533@192.168.10.233:554/trackID=2 로 접속했는데 IOException  이 발생했다고 나오네요...
java.io.FileNotFoundException 이 발생하는 것으로 보아서는 해당 주소로 접근이 안되는 듯 한데. 왜 접속이 안되는지 확인 해 보셔야 할 듯 합니다.
답변 감사합니다 ^^
근데 ipcam 쪽에 해상도를 낮추어서 정상 접근했을때도 java.io.FileNotFoundException: No content provider: rtsp://admin:gaus4533@192.168.10.233:554/trackID=2 이 로그가 올라왔습니다.
ㅠ.ㅠ
혹시 다른 부분 놓치는거라도 있는지... 바쁘신데 죄송합니다 ㅎ
흠...제가 착각했네요. 죄송합니다.
ContentProvider로 로드하려다 실패해서 Native에서 재 시도하는 로직이라 찍히는 로그로 그 부분은 문제가 아닌듯 합니다.

아무래도 찍어주신 로그가 풀로그가 아니라.  어플쪽 로그만 나온듯 합니다.
이클립스나 안드로이드 스튜디오에서 나오는 로그가 아니라.
adb logcat 같은 명령어를 직접 입력해서 로그를 따 보시길 권장합니다.
...