-
스트리밍 서버 : AWS EC2 Ubuntu 16.04 + WowzaStreamingEngine
Wowza 서버를 사용할 경우 TCP 8086 ~ 8088 / UDP 6970 ~ 9999 포트를 개방해주셔야 합니다.
- Glide
- ButterKnife
- Exoplayer
- rtsp-rtmp
- Firbase Auth, Database, Storage 등
- Firebase를 활용한 구글로그인 연동 및 DB저장
- 기기 -> 스트리밍서버 로 영상 송출시 RTSP전송
- 스트리밍서버 -> 기기 : 송출된 영상을 Dash로 받아와 ExoPlayer에서 재생
- Firebase RealTime DataBase를 활용한 방송정보 갱신 / 실시간 채팅 활성화
- Firebase auth를 활용한 회원가입 & 로그인 후 Firebase Databse에 회원정보 저장
- 로그인한 사용자만 방송할 수 있도록 설정 (미로그인시 로그인창 생성)
- 방송제목, 카메라 앞뒤화면 설정
- 시작버튼을 누를경우 스트리밍서버와 연결되었을 경우 채팅서버 연결
- 생방송리스트에 방송정보 추가
- 스트리밍서버에 연결되었을경우, Exoplayer에 영상 표시 및 채팅서버 연결
- 로그인된 사용자만 채팅전송가능
- 시작버튼을 누를경우 스트리밍서버와 연결되었을 경우 채팅서버 연결
- 한줄공지
- 프로필이미지 & 방송국 썸네일 변경
- 스트리머 목록 (생방송중일시 Live표시)
- 즐겨찾기기능
-
영상 RTSP송출
private RtspCamera1 rtspCamera1; rtspCamera1.setAuthorization(stream_config.user, stream_config.password); rtspCamera1.setVideoBitrateOnFly(stream_config.bitrate); rtspCamera1.setProtocol(Protocol.UDP); rtspCamera1.prepareAudio(128 * 1024, stream_config.samplerate, true, false, false); rtspCamera1.prepareVideo(stream_config.width, stream_config.height, stream_config.fps, stream_config.bitrate, false, 0); rtspCamera1.getResolutionsBack().get(8); rtspCamera1.enableVideo(); rtspCamera1.enableAudio(); rtspCamera1.startStream(url); -
ExoPlayer
if (player == null) { TrackSelection.Factory factory = new AdaptiveTrackSelection.Factory(def); player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(context), new DefaultTrackSelector(factory), new DefaultLoadControl()); player.addListener(componentListener); player.setVideoDebugListener(componentListener); player.setAudioDebugListener(componentListener); playerView.setPlayer(player); player.setPlayWhenReady(ready); } MediaSource mediaSource = buildMediaSource(Uri.parse("StreamingServerUrl")); player.prepare(mediaSource, true, false);






