2

Azure のエンコード タスクが完了すると、多数の ISMV/ISMA ファイルが Azure BLOB に格納されます。今、それらを Smooth Streaming で利用できるようにしたいと考えています。どうやってやるの?

インターネットで見つけた記事には、アダプティブ ストリーミング Azure ユーティリティを使用してローカル PC から Azure に ISMV ファイルをアップロードする方法が記載されています。しかし、私のファイルは既に Azure ストレージにあるため、それらをダウンロードして再度アップロードしたくありません。

誰でもアドバイスしてもらえますか?

4

2 に答える 2

3

非常に詳細で技術的に正確な方法: ストリーミング コンテンツの配信では、Smooth Streams をユーザーに配信するために何をすべきかが明確にわかります。

それ以外に、WaMediaWeb プロジェクトのReadmeコードを調べることもできます。

    public string GetSmoothStreamingOriginLocator(Models.Asset assetToStream)
    {
        // Get a reference to the manifest file from the collection 
        // of streaming files in the asset. 
        var manifestFile = assetToStream.MediaAsset.AssetFiles.Where(x => x.Name.EndsWith(".ism")).FirstOrDefault();
        // Cast the reference to a true IFileInfo type. 
        if (null == manifestFile)
        {
            return null;
        }


        // Create an 1-day readonly access policy. 
        IAccessPolicy streamingPolicy = this.MediaService.MediaContext.AccessPolicies.Create("Streaming policy",
            TimeSpan.FromDays(1),
            AccessPermissions.Read);


        // Create the origin locator. Set the start time as 5 minutes 
        // before the present so that the locator can be accessed immediately 
        // if there is clock skew between the client and server.
        ILocator originLocator =
            (from l in this.MediaService.MediaContext.Locators
             where l.AssetId.Equals(assetToStream.MediaAsset.Id)
             select l).FirstOrDefault();


        if (originLocator == null)
        {
            originLocator = this.MediaService.MediaContext
                .Locators.CreateLocator(LocatorType.OnDemandOrigin, assetToStream.MediaAsset,
             streamingPolicy,
             DateTime.UtcNow.AddMinutes(-5));
        }
        // Create a full URL to the manifest file. Use this for playback
        // in streaming media clients. 
        string urlForClientStreaming = originLocator.Path + manifestFile.Name + "/manifest";


        // Display the full URL to the streaming manifest file.
        Console.WriteLine("URL to manifest for client streaming: ");
        Console.WriteLine(urlForClientStreaming);


        return urlForClientStreaming;
    }

アップデート

現在、Azure Media Services ではCDN はサポートされていません。以前の SDK/API には AzureCdnOriginlocator がありましたが、現在は削除されています。そのため、Azure Media Services の現在のパブリック プレビュー状態では、CDN を使用できません。スムーズなストリーミングには、OnDemandOrigin Locator のみを使用できます。

SAS ロケーターを取得するオプションもあります。ただし、SAS Locator を使用すると、ストレージ アカウントの残りのファイル (異なるビットレート チャンク) ではなくマニフェストにアクセスできるため、スムーズなストリームには使用できません。

更新 2

github の私のコードは、最新の (最新の) API と SDK で最新です。

更新 3

間違えた!CDN について何かを発見しました。そのため、 How to: Enable CDNに関するドキュメントは正しいですが、少し不完全です。

そのハウツーに記載されている手順に従ってください。CDN のメディア サービス アカウントをアクティブ化すると、説明されている手動のプロセスを通じて、CDN エンドポイントを使用できるようになります。

そうは言っても、OnDemandOrigin ロケーターは次のようになります。

http://wamsamsreg001orig-hs.cloudapp.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest

を Azure CDN エンドポイントに置き換える必要がありwamsamsreg001orig-hs.cloudapp.netます。これは次のようaz02930.vo.msecnd.netになり、ストリーミング マニフェストの新しい URL を取得します。

http://az02930.vo.msecnd.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest

それが少し明確であることを願っています。API や SDK を介して CDN を自動的に取得することはできません。手動で文字列を操作する必要があり、CDN エンドポイントを知る必要があります。

それは私にとっても新しいことです。コードを更新する必要があります - CDN を提供する部分です。

また、ロケーターは作成されてもすぐには利用できないことに注意してください。ロケータが使用可能になるのは、作成後約 30 ~ 40 秒です。

于 2012-12-06T10:43:03.907 に答える
0

Windows Azure メディア サービスの使用方法に関するハウツー記事はご覧になりましたか?

Media Services は、Smooth Streaming、Apple HTTP Live Streaming、および MP4 形式のストリーミング オリジン サポートを提供します。

したがって、このサービスを使用して目標を達成することができます。確かなことは言えませんが、私としては、この部分はあなたにとって興味深いものになる可能性があります。

方法: ストリーミング コンテンツを配信する:

たとえば、ロケーターと呼ばれる直接 URL を作成して、Media Services オリジン サーバーでコンテンツをストリーミングできます。ロケータを指定すると、Microsoft Silverlight などのクライアント アプリケーションでストリーミング コンテンツを直接再生できます。

MSDN の
Windows Azure メディア サービス Windows Azure メディア サービス フォーラム

于 2012-12-06T10:42:25.623 に答える