2

iOS は、暗号化された .ts ファイルと EXT-X-DISCONTINUITY タグが混在する hls m3u8 ファイルを好まないようです。

これはテストプレイリストで、2 つのビデオをミックスしたものです。暗号化されていないプレロール広告とメインの暗号化されたビデオ。どちらも別々に再生するとうまく再生されますが、EXT-X-DISCONTINUITY で分離された単一の m3u8 にまとめると、プリロールのみが再生され、その後プレーヤーが停止します。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/vig_400-0.ts
#EXTINF:10,
http://ixemes-ppweb.ixemes.com/prerollmain/vig_400-1.ts
#EXT-X-DISCONTINUITY
#EXTINF:10,
#EXT-X-KEY:METHOD=AES-128,URI="http://ixemes-ppweb.ixemes.com/prerollmain/113760.key"
http://ixemes-ppweb.ixemes.com/prerollmain/02-0.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-1.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-2.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-3.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-4.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-5.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-6.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-7.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-8.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-9.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-10.ts
#EXTINF:10,     
http://ixemes-ppweb.ixemes.com/prerollmain/02-11.ts
#EXTINF:2,      
http://ixemes-ppweb.ixemes.com/prerollmain/02-12.ts
#EXT-X-ENDLIST

暗号化されていない 2 つのビデオを試してみましたが、うまくいきました。そして、暗号化されたビデオで EXT-X-DISCONTINUITY タグを使用することは禁止されていると言う HLS 仕様には何もありません: https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-08 #section-6.3.3

したがって、間違っているのは独自の仕様のアップルの実装だと思いますが、おそらく私が間違っているのでしょう。

私はそれをテストするための簡単なhtmlページを作成しました(ios5デバイスのサファリで開きます):http://ixemes-ppweb.ixemes.com/prerollmain/index.html

4

2 に答える 2

1

メインビデオの暗号化には関係ないようですが、メインビデオのエンコード方法に関係しているようです。メイン ビデオのエンコード方法を制御することはできません。テスト目的で、プリロール ビデオを自分でエンコード (およびチャンク) しただけです。

プリロールを同じメイン ビデオと混ぜても暗号化されていない場合、それも機能しません。同じ外部エンコーダーでエンコードされた、暗号化された (または暗号化されていない) 2 つのビデオを混在させると、機能しません。外部エンコーダーのパラメーターのエンコードに何が問題なのかわかりませんが、不連続タグは機能しません。

しかし、両方のビデオ (プリロールとメイン) をエンコードし、メインのビデオを暗号化し、不連続タグを使用してそれらを単一の m3u8 ファイルに入れると、機能します。

そのため、ios が不連続タグを処理する方法にはまだ問題があり、プレーヤーのパラメーターを完全にはリセットしませんが、少なくとも暗号化されていないプレロール ビデオを暗号化されたビデオの前に挿入することは可能です。

于 2012-07-25T13:59:48.353 に答える