0

メディアサービスはストリームからアップロードすることはできず、仮想フォルダを作成することもできませんので、イメージとビデオを仮想フォルダで構成されるBLOBコンテナにアップロードすることにしました。アセットを仮想フォルダにコピーするには

次は、アジールメディアサービスの顔画像で画像と動画を処理する必要があります。

したがって、私たちのBLOBをアジアメディアサービスにアセットとしてコピーしてからface redactorを使用する必要があります。アセット形式の結果をそれぞれの仮想フォルダにアップロードする必要があります。

問題は、Azureのメディアサービスでは、特定の仮想パスを持つ別のコンテナにアセットを直接アップロードすることができないということです。

どのようにこの状況に近づいていますか?

答えて

0

当社の.Net SDKストリーム(thisページの下の方に最後UploadAsync過負荷を参照)からアップロードするいくつかのメソッドを提供します。

資産の仮想ディレクトリ構造はサポートしていませんが、 Bruce Chenが応答したときに、Azure Storage APIを使用して、仮想フォルダを持つBLOBコンテナとAzure Media Services資産を保持するBlobコンテナを行き来することができます。

+0

私はasp .netコアを使用しています。 私はsdkがasp .netコアと互換性がないという問題に直面しました。 私はface redactorのメディアサービスrest APIを使用しようとしましたが、私は見つけられませんでした。それは存在しないからですか?それとも私はそれを見つけていないのですか? – Puzzle

+0

まだ.NET Core APIはありません。 REST APIを使用する必要があります。 – johndeu

0

AFAIK、特定の資産の下にあるアセットファイルは、ルートフォルダの下にしか置くことができませんでした。アセットファイルを別のblobコンテナの下の別の仮想フォルダにコピーする場合は、まずMediaServices SDKを使用してアセットを取得し、ストレージクライアントSDKを使用してアセットファイルを取得し、他のブロブコンテナの下の行き先。ここでは、コードスニペットは、あなたがそれを参照することができ、次のとおりです。

//retrieve the asset with the specific Id 
var asset = _context.Assets.Where(s => s.Id == "nb:cid:UUID:39a13eaf-48cf-4c3c-80d6-bcd6b3b7c8b4").FirstOrDefault(); 

//retrieve the container name for the current asset 
string assetContainerName = asset.Uri.Segments[1]; 

//construct the CloudBlobClient instance 
StorageCredentials mediaServicesStorageCredentials = new StorageCredentials("{storage-name}", "storage-key"); 
var storageAccount = new CloudStorageAccount(mediaServicesStorageCredentials, true); 
var mediaServiceBlobClient = storageAccount.CreateCloudBlobClient(); 

//construct the CloudBlobContainer instance for the current asset container 
var assetContainer = mediaServiceBlobClient.GetContainerReference(assetContainerName); 

//define the destination directory under another container 
var destDirectory = mediaServiceBlobClient.GetContainerReference("images").GetDirectoryReference("2017/11/7"); 

//copy the asset files under the current asset container to the specific virtual folder under another blob container 
foreach (CloudBlockBlob assetBlob in assetContainer.ListBlobs()) 
{ 
    var targetBlob = destDirectory.GetBlockBlobReference(assetBlob.Name); 
    targetBlob.StartCopy(assetBlob); 
} 
+0

。私はちょうど私が顔のredactorのためのメディアサービス、残りのAPIを使用しようとしました。メディアサービスのSDKには、ASP .NETのコアと互換性がない問題に出くわしましたしかし、私は顔のredactorのapisを見つけることができませんでしたそれが存在しないためですか?それとも私はそれを見つけたことがありませんか? – Puzzle

+0

.NET CoreからFace Redactorを使用する場合は注意したようにREST APIをラップする必要があります。このコメントの外にコードを貼り付けます。 – johndeu

0

.NET CoreにFaceRedactorを使用するには、REST APIを直接使用して、適切なメディアプロセッサIDと構成設定でジョブを作成します。

https://docs.microsoft.com/en-us/azure/media-services/media-services-face-redaction

カール-X POST \ https://tvmewest.restv2.westcentralus-2.media.azure.net/api/Jobs -H \ '受け入れる:アプリケーション/ JSONを、ODATA =冗長' \ -H「承認:ベアラHERE YOUR AAD JWT BEARER TOKEN -H 'キャッシュコントロール:キャッシュなし' \ -H 'コンテンツタイプ:アプリケーション/ JSON; ODATA =冗長' \ -H 'dataserviceversion:3.0' -H \ 'maxdataserviceversion:3.0' \ -H「郵便配達-token:6662e359-cb76-d849-11c5-99da0514cdc1 '\ -H' user-agent:azure med IAサービスの郵便配達コレクション '\ -H 'はX-MS-バージョン:2.15' \ -d' { "名前": "墨消しのテストジョブ"、 "InputMediaAssets":[{ "__metadata":{ " URI ":" https://tvmewest.restv2.westcentralus-2.media.azure.net/api//Assets( '\' 'NB:CID:UUID:733f8d88-f96b-496c-a46e-38c037b89d48' \ '') " } }]、 "タスク":[{ "設定":" {'\' 'version' \ '': '\' '1。'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '高' \ ''}} " "MediaProcessorId": "NB:MPID:UUID:3806d7a6-4985-4437-b098-50e3733310e8 TaskBody" 、 "":" JobInputAsset(0) JobOutputAsset(0)私は、ASP .NETのコアを使用しています 「 }] }」

+0

郵便配達のコレクションを再生する場合は、[email protected]まで電子メールでお問い合わせください。コードサンプルの生成が容易になります。 – johndeu