1

SmoothStreamingMediaElement を使用して IIS Smooth Streaming を備えたアプリケーションに取り組んでいます。プロジェクトの性質上、ストリームのソースを開示することはできませんが、発生した問題に関する完全な技術情報を提供することはできます。

テスト目的で、SmoothStreaming 部分を別のアプリケーションに分離しました。Microsoft が提供するテスト ストリームが正常に機能するため、すべてが正常に機能しているようです (http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Manifest)。

Windows Phone での SmoothStreaming の制限を考慮しました。 - ManifestReady イベントでは、使用可能なトラックがフィルタリングされ、使用可能な解像度が 1 つだけ表示されます。 - テスト中、デバイスは Zune 経由で接続されていません。

表示されるエラー メッセージは非常に明確です。

「3108 再生を開始するのに十分なコンテンツ期間がありません。利用可能 = 3840 ミリ秒、必須 = 7250 ミリ秒」

このエラーへの参照を見つけることができませんでした。必要な 7250 ミリ秒の期間がどこから発生したかについて、さらに詳しい情報を見つけました。この MSDN ページは、デフォルトで 7 秒に設定され、WP7 SmoothStreamingMediaElement で変更できない LivePlaybackOffset と関係があることを示唆しています。同じコードは、ブラウザ シルバーライト アプリケーションでも正常に機能します。

ストリームを提供するサーバーに直接アクセスできません。クライアント側でこの問題に対処する方法はありますか? それとも、サーバー側の構成が必要ですか? ソース コードの一部を共有できると助かる場合は、関連する部分を教えてください。あなたの助けは大歓迎です!

これはマニフェスト ファイルです。

<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" TimeScale="10000000" Duration="0" LookAheadFragmentCount="2" IsLive="TRUE" DVRWindowLength="300000000">
<StreamIndex Type="audio" QualityLevels="1" TimeScale="10000000" Name="audio" Chunks="7" Url="http://xxxx/xxx.isml/QualityLevels({bitrate})/Fragments(audio={start time})">
<QualityLevel Index="0" Bitrate="128000" CodecPrivateData="1190" SamplingRate="48000" Channels="2" BitsPerSample="16" PacketSize="4" AudioTag="255" FourCC="AACL"/>
<c t="3485836800000" d="38400000" r="7"/>
</StreamIndex>
<StreamIndex Type="video" QualityLevels="6" TimeScale="10000000" Name="video" Chunks="7" Url="http://xxxx/xxx.isml/QualityLevels({bitrate})/Fragments(video={start time})" MaxWidth="1024" MaxHeight="576" DisplayWidth="1024" DisplayHeight="576">
<QualityLevel Index="0" Bitrate="350000" CodecPrivateData="000000016742E01596540D0FF3CFFF80980097A440000003004000000CA10000000168CE060CC8" MaxWidth="405" MaxHeight="228" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="1" Bitrate="700000" CodecPrivateData="000000016742E01E965404814F2FFF8140013FA440000003004000000CA10000000168CE060CC8" MaxWidth="568" MaxHeight="320" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="2" Bitrate="1000000" CodecPrivateData="000000016742E01E965405217F7FFE0B800B769100000300010000030032840000000168CE060CC8" MaxWidth="654" MaxHeight="368" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="3" Bitrate="1300000" CodecPrivateData="00000001674D4028965605819FDE029100000300010000030032840000000168EA818332" MaxWidth="704" MaxHeight="396" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="4" Bitrate="1600000" CodecPrivateData="00000001674D402A965605A1AFCFFF80CA00CAA440000003004000000CA10000000168EA818332" MaxWidth="718" MaxHeight="404" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="5" Bitrate="2000000" CodecPrivateData="00000001674D4032965300800936029100000300010000030032840000000168E96060CC80" MaxWidth="1024" MaxHeight="576" FourCC="AVC1" NALUnitLengthField="4"/>
<c t="3485836800000" d="38400000" r="7"/>
</StreamIndex>
</SmoothStreamingMedia>
4

1 に答える 1

1

この質問は少し古いことは知っていますが、今日は非常によく似た問題があったので、答えるべきだと思いました... 問題は r="7" にあります。このパラメータは MS のドキュメントには記載されておらず、 Smooth Streaming バージョン 2.2 以降 (2.0 ではない)。r="7" は、マニフェスト内のチャンクを 7 回繰り返す必要があることを意味します。つまり、合計で 7 * 3.84 秒になります。

ここでそれを説明するブログ投稿があります: http://blogs.iis.net/samzhang/archive/2011/03/10/how-to-troubleshoot-live-smooth-streaming-issues-part-5-client-マニフェスト.aspx

于 2013-08-08T13:38:04.390 に答える