チュートリアルに従って、IIS Smooth Streaming 公開ポイントが Apple デバイスをサポートするようにしましたが、問題が発生しました<video>
。タグのターゲット URL が 404 応答を生成します。
私のismlは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="title" content="" />
<meta name="module" content="liveSmoothStreaming" />
<meta name="sourceType" content="Push" />
<meta name="publishing" content="Fragments;Streams;Archives" />
<meta name="estimatedTime" content="36000" />
<meta name="lookaheadChunks" content="2" />
<meta name="manifestWindowLength" content="0" />
<meta name="startOnFirstRequest" content="True" />
<meta name="archiveSegmentLength" content="0" />
<meta name="formats" content="m3u8-aapl" />
<meta name="m3u8-aapl-segmentlength" content="10" />
<meta name="m3u8-aapl-maxbitrate" content="1600000" />
<meta name="m3u8-aapl-allowcaching" content="False" />
<meta name="m3u8-aapl-backwardcompatible" content="False" />
<meta name="m3u8-aapl-enableencryption" content="False" />
<meta name="filters" content="" />
</head>
<body>
</body>
</smil>
私が使用しているhtmlは次のとおりです。
<!doctype html>
<html>
<head>
<title>Apple streaming IIS test</title>
</head>
<body>
<h1>Live Stream</h1>
<video width="640"
height="360"
src="http://10.1.1.22/video.isml/manifest(format=m3u8-aapl).m3u8"
autoplay="true"
controls="true">
Live
</video>
</body>
</html>
ブラウザーにURLhttp://10.1.1.22/video.isml/manifest
を入力すると、Silverlight ベースのストリーミング用の正しい XML ファイルが取得されますが、(format=m3u8-aapl)
または(format=m3u8-aapl).m3u8
(これらの手順に従って) を追加すると 404 が発生することに注意してください。
編集:私は成功しなかったいくつかのことを試しましたが、何が失敗しているのかについての洞察を与えるかもしれません:
- URLは、Silverlight に適し
http://10.1.1.22/video.isml/manifest(foo=bar)
た とまったく同じ応答を返します。/manifest
- URL
http://10.1.1.22/video.isml/manifest(format=foo)
は 404 を返します。 - URL
http://10.1.1.22/video.isml/manifest.m3u8
は 400 の不正な要求を返します。 - URL
http://10.1.1.22/video.isml/manifest(foo=bar).m3u8
から Silverlight の応答が得られます。
そのため、拡張子はサーバーにとって何の意味もないようですが、括弧で囲まれた引数が存在しない場合は解析できません。さらに重要なことは、サーバー ハンドラーが実際に実行されている/manifest(format=m3u8-aapl)
が、何らかのサブ要求で 404 を生成していることは明らかです。サーバーが URL を認識せず、正しいハンドラーを実行できない可能性を除外できます。