背景として: 私は、ユーザーが私たちが提供するビデオを閲覧できる iPad 用のアプリケーションを開発しています。ユーザーがビデオを選択すると、MPMoviePlayerController が起動します。これは正常に動作します (最初の 10 秒間はビデオが表示されず、理由がわかりません)。
これで、ユーザーは特定のシーンを検索できるようになります。たとえば、「foo が bar に話しかける」などです。「ビデオ A、23 ~ 42 秒、ビデオ B、56 ~ 89 秒、F、1912 ~ 1989 秒」のようなリストが表示されます。これらのシーンをすべて連続して再生したいと思います。
ビデオはもともと MPEG2 ビデオで、Apple が要求するように MPEG2 コンテナで H.264 にトランスコードし、mediafilesegmenter を介して異なるチャンクに分割しました。
これらのビデオを再生するために、私の最初のアイデアは、再生したい個々のビデオのチャンクを含む CGI スクリプトを介して、.m3u8 プレイリスト (ビデオの長さが 10 分を超える場合、HTTP プログレッシブ ストリーミングは禁止されています) を動的に生成することでした。残念ながら、これは最初のチャンクでしか機能しません。2 番目のチャンクが再生されると、オーディオとビデオが消えます。セグメントが連続していないため、タイムスタンプの問題だと思います。
私の次のアイデアは、ビデオを完全にバックエンドでカットして整理し、それらを VLC のように渡し (事前に MPEG2 から H.264 へのトランスコーディング全体を節約できます)、それらを mediastreamsegmenter にパイプすることでした。これはうまく機能しますが、欠点は、ユーザーがビデオをシークできないことです。
最後に、複数の MPMoviePlayerControllers を連続して開始しようとしました。各ビデオに 1 つずつです。残念ながら、個々のシーン間のバッファリングなどの遅延は長すぎます。シーンの長さを超えることもあります。
誰かがそれを解決する方法を知っている場合 (または、私がやろうとしていることさえ可能かどうかを教えてくれます)、提案をいただければ幸いです。