VLC, FFMPEG의 경우 H264->YUV420 SW 디코딩 -> RGB 565로 변경 -> ImageView를 통해 출력
VideoView는 H264->YUV420 HW 디코딩 -> Surface View를 통해 출력으로 동작 방식이 다릅니다.
VLC, FFMPEG의 경우 AC3, DTS 코덱을 지원하고 파서 성능도 안드로이드 기본 플레이어보다. 다소 대응이 많이 되게 되어 있어 동영상 재생되는 케이스가 더 많긴 합니다만.
VideoView에서 재생이 제대로 안되는 이유는 코덱 문제라기 보단,
VLC쪽 RTSP나 HTTP 스트리밍을 제대로 지원 못해서 발생하는 문제 입니다...
VideoView를 사용하시려면 RTSP, TCP 데이터 받는 부분을 java 프록시 서버에서 수행하게 하여, VideoView를 에서 프록시에서 접속하여 데이터를 받을 때 HLS 형식으로
받도록 하는 변경 모듈을 만드시면 되긴 합니다만. 난이도가 다소 있을 겁니다.
SW 코덱을 쓰실 경우 디코딩 속도가 HW보다 늦어 단말 성능이 나쁘면 720p를 제시간에 그리지 못한다는 단점이 있긴 하지만
요즘 폰 성능이 좋아 카메라의 해상도가 480P정도면 어지간하면 사용하는데 지장없습니다.
특히 VLC의 경우 안드로이드 소스가 풀로 공개되고 있으니 환경 설정만 잘하셔서 빌드만 하신다면 사용하시는데는 문제가 없으실겁니다.
아래 링크를 확인 해 보세요..
http://www.econovation.co.kr/ecnvb/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-vlc-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EA%B0%9C%EB%B0%9C-7%ED%8E%B8vlc-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%BB%B4%ED%8C%8C%EC%9D%BC/