Development Tip

Firebase 저장소 비디오 스트리밍

yourdevel 2021. 1. 8. 22:27
반응형

Firebase 저장소 비디오 스트리밍


비디오 스트리밍 기능이있는 앱을 개발 중입니다. firebase 데이터베이스와 firebase 저장소를 사용하고 있습니다. firebase 저장소가 비디오 파일을 처리하는 방법에 대한 문서를 찾으려고하지만 실제로 많이 찾을 수는 없습니다.

문서에는 firebase 저장소가 CDN 및 비디오 스트리밍을 허용하기 위해 다른 Google 앱 서비스와 함께 작동하지만 모든 검색이 막 다른 길로 연결된다는 언급이 있습니다. 어떤 충고?


여기에 대한 답변을 변경할 수있는 여러 유형의 비디오 스트리밍이 있다고 생각합니다.

  • 라이브 스트리밍 (이벤트가 발생하면 구독자가 시청)
  • Youtube 스타일 (동영상 게시 및 최종 사용자가 편한 시간에 시청)

Firebase 저장소와 Firebase 실시간 데이터베이스를 사용하여 실시간 스트리밍 Periscope 스타일 앱을 구축 한 후 저는 이에 반대 할 것을 강력히 권장합니다. 3 초 청크를 업로드하고 실시간 데이터베이스를 통해 동기화했습니다. 작동하는 동안 (놀랍게도 잘) 매우 좋은 인터넷에서 5 초의 지연 시간이 있었고 가장 효율적인 솔루션도 아니 었습니다 (결국 해당 비디오를 업로드하고 저장하고 있으며 트랜스 코딩이 없었습니다). . 비디오 전송을 위해 구축 된 WebRTC 스타일을 사용하고 스트림을 따라 신호를 보내기 위해 실시간 데이터베이스를 사용하는 것이 좋습니다.

반면에 Firebase 기능에 모바일 YouTube를 구축하는 것은 확실히 가능합니다. 여기서 트릭은 비디오를 트랜스 코딩 (Zencoder 또는 Bitmovin과 같은 것을 사용 )하여 업로드 된 비디오를 다른 해상도의 작은 덩어리로 자르는 것입니다 (그리고 여기에 더 많은 것 : https://cloud.google.com/solutions/media/ ) . 예를 들어 iOS는 스트리밍을 위해 HLS가 필요합니다). 클라이언트는 실시간 데이터베이스에 청크 정보 (청크 이름, 사용 가능한 해상도, 청크 수)를 저장할 수 있으며 비디오가 진행됨에 따라 저장소에서 해당 청크를 다운로드 할 수 있습니다.


Firebase 저장소에서 동영상을 스트리밍하려면 이것이 제가 찾은 가장 좋은 방법입니다. 이것은 비디오 파일의 크기에 따라 다릅니다. 이 솔루션은 저에게 잘 작동하므로 10-30MB 파일 만 요청합니다. Firebase URL을 일반 URL로 취급하면됩니다.

String str = "fire_base_video_URL";
Uri uri = Uri.parse(str);

videoViewLandscape.setVideoURI(uri);
progressBarLandScape.setVisibility(View.VISIBLE);
videoViewLandscape.requestFocus();
videoViewLandscape.start();

비디오를 반복하려면 :

videoViewLandscape.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.setLooping(true);
    }
});

비디오가 시작되기 전에 진행률 표시 줄을 표시하려면 다음을 수행하십시오.

videoViewLandscape.setOnInfoListener(new MediaPlayer.OnInfoListener() {
    @Override
    public boolean onInfo(MediaPlayer mp, int what, int extra) {
        if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
            progressBarLandScape.setVisibility(View.GONE);
            return true;
        }
        else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START){
            progressBarLandScape.setVisibility(View.VISIBLE);
            return true;
        }
        return false;
    }
});

이것이 최선의 방법은 아니지만 좋은 비디오 스트리밍 서비스를 찾을 때까지 지금은 저에게 효과적입니다.


시도해보십시오 : https://firebase.google.com/docs/storage

Cloud Storage는 사진이나 동영상과 같은 사용자 생성 콘텐츠를 저장하고 제공해야하는 앱 개발자를 위해 구축되었습니다.

참조 URL : https://stackoverflow.com/questions/37865482/firebase-storage-video-streaming

반응형