質問: iPhone上で、イベント会場で撮影している動画を周辺にリアルタイムで流すニーズがあります。 Appleの推奨するHLSは仕組み上20-30秒ほどの遅延が発生してしまうので採用ができず、極力遅延の少ない配信を行いたいと考えているのですが、RTSPでの配信はできるのでしょうか。 あるいは、遅延の少ない(1秒程度)仕組みはどのように作ればよいでしょうか。 要件としては以下のようになります。 ■iPhone-Safariをクライアントとして遅延の少ないリアルタイム配信を行いたい ■再生ボタンをクリックしてもプレイヤーが開かれず、ページ内に組み込む形が好ましい ■もし上記で不可の場合、ブラウザではなくアプリを使った低遅延の仕組みを構築する 詳しい方がいましたら方法を教示いただけると助かります。
回答: iOS の Safari では、RTSPプロトコルに対応していない為、配信できません。 > > Appleの推奨するHLSは仕組み上20-30秒ほどの遅延が発生してしまうので、、 > > > (ライブ配信の場合)HLS は「指定長秒数のセグメントファイルを作成」 → 「クライアントに配信」という形をとるため、セグメントファイルの長さの分だけ遅延が発生してしまいます。 最悪、セグメントファイルの長さを短くすれば遅延の発生はある程度減らすことが可能です。 ただしこの場合、リクエストがその分多く発生する為、サーバーへの負荷は上がってしまいますね。 セグメントファイルが可変長にできればよいのですが。。。残念ながらそのような機能は無かったかと思います。 > > ■iPhone-Safariをクライアントとして遅延の少ないリアルタイム配信を行いたい > > > Safari でストリーム配信を行う場合、基本、HLSフォーマットしか選択肢はありません。 遅延を減らすには、セグメント長を短くするしかないと思います。 音声が不要であれば、MJPEG 形式で配信するという手段も取れなくはありませんが。。。 > > ■再生ボタンをクリックしてもプレイヤーが開かれず、ページ内に組み込む形が好ましい > > > すいません。 これは他の方にお尋ねください。。。 > > ■もし上記で不可の場合、ブラウザではなくアプリを使った低遅延の仕組みを構築する > > > アプリであれば、RTSP 配信に対応させることが可能です。 (Objective-C のライブラリは無かったかもしれませんが、最悪 Adobe AIR on Mobile を利用すればRTSPで配信できたと思います)