2

モバイル アプリ (react-native-video プレーヤーを使用した React Native) でビデオ ファイルを提供したいと考えています。気になるのは以下の2点です。

  1. より遅い帯域幅 (LTE など) を使用するユーザーでも最小限のバッファリングでビデオを視聴できる適応ビットレート
  2. 速いシーク時間
  3. 低帯域幅消費

HLS ストリーミング (具体的には .m3u8 プレイリスト + TS ファイル) は、上記の基準をすべて満たしているようです。

ファイルを生成するために (Apple が推奨する 6 秒のセグメント長) を使用しましたffmpeg-hls_time 6マスター プレイリストの例を次に示します。

# sample-30s.m3u8
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=1205600,RESOLUTION=1920x1080,CODECS="avc1.640032,mp4a.40.2"
sample-30s_0.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=105600,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
sample-30s_1.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=52800,RESOLUTION=854x480,CODECS="avc1.64001f,mp4a.40.2"
sample-30s_2.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=52800,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2"
sample-30s_3.m3u8

次に、それらを DigitalOcean Spaces に保存しreact-native-video、マスター プレイリストの CDN エンドポイント経由でソースします。例:

https://onecoach-public.nyc3.cdn.digitaloceanspaces.com/classes/beginner-to-2.0/1-ball-control/1-why-ball-control/view0_hls/view0.m3u8

これはすべて、50Mb/秒のダウン Wifi で問題なく動作しますが、LTE (DO の NYC1 データセンターから約 5 ~ 10Mb/秒) に切り替えると、HLS ストリームは (セグメントの境界で) 6 秒ごとにバッファリングされるようです。各セグメントは最大 800KB であるため、各セグメントを時間内にダウンロードするには 5Mb/s で十分です。

ここで何か間違ったことをしていますか?

4

0 に答える 0