
ライブ配信の遅延
ライブ配信は配信者から視聴者(リスナー)に映像が届くまでおよそ2秒くらいの微妙な遅延がある。OBS Studioとか使うと遅延の設定が出来る。
遅延の原因調べだしたら「エンコード」とか「デコード」とか「バッファリング」とか難しい横文字が出てくるけど…要は配信者側のカメラで撮った映像を配信プログラムで処理出来るように一旦変換してから、なんかイイ感じに処理された映像をリスナーに届ける時にまた元に戻すといったことをしている。
仕事とかで時間とかに余裕を持たせるみたいな意味で「バッファ」というカタカナを使うことがあると思う。これは動画でも同じ。
たとえばYoutubeとか見ていると「再生中」の赤いバーとは別に、先を行く薄い白いバーがついてる。アレはあらかじめこの先の続きをここまで読み込んで保持しておきましたよという目印。
保持せず読み込んだところからすぐ再生させる方法だと、ネットが途切れた時にそこで映像が止まってしまってストレスになってしまう。
あらかじめ読み込んで保持しておき、保持したものを再生する方法を採用することでネットが途切れたとしても続きを読み込む処理は止まってしまうものの再生自体は保持した部分を読み取っているので、再生してる間にネットが戻って続きを読み込む処理が再開してくれれば、動画が途切れることなく快適に再生出来る。つまり快適に再生させるための余裕を持たせたバッファ(再生バッファリング)である。
ライブ配信も似たような感じで前述の変換処理(エンコード)やら復元処理(デコード)やらバッファリングやらその他ネットワーク品質の要因等で時間をかけている分、遅延は発生する。
この辺の処理がもたついてたりすると、当然リスナー側に配信映像を送るのももたついて映像が止まってしまい、場合によっては音声と映像がズレて配信される要因にもなる。
そんな仕組みの事情もあり、今の技術では遅延を完全になくすことは難しい。ライブ映像配信では既存の技術をイイ感じに作り直す方法だったり全く新しい技術を生み出して採用する方法だったりで、いかに遅延を減らせるかが技術課題である。この辺のコト自分もアンテナはっていきたい。