للحصول على حلول للمشكلات المتعلقة باستخدام خدمات الوسائط.
.
توضح هذه المقالة كيفية إنشاء أصول خدمات الوسائط. ستستخدم أحد الأصول للاحتفاظ بمحتوى الوسائط للترميز والتدفق. لمعرفة المزيد حول أصول خدمات الوسائط، اقرأ الأصول في Azure Media Services v3
استخدم الطرق التالية لإنشاء أصل خدمات الوسائط.
يعد إنشاء الأصول في المدخل بسيطا مثل تحميل ملف.
مقاطع فيديو Upload
يجب أن يكون لديك حساب خدمات وسائط وحساب تخزين ونقطة نهاية تدفق افتراضية.
- انتقل إلى حساب خدمات الوسائط الذي تريد العمل معه.
- حدد الأصول. الأصول هي الحاويات المستخدمة لإيواء محتوى الوسائط.
- حدد تحميل. ستظهر شاشة Upload الأصول الجديدة.
- حدد حساب التخزين الذي أنشأته لحساب خدمات الوسائط من القائمة المنسدلة حساب التخزين . يجب تحديده بشكل افتراضي.
- حدد أيقونة مجلد الملف بجوار حقل ملفات Upload.
- حدد ملفات الوسائط التي تريد استخدامها. سيتم إنشاء أصل لكل فيديو تقوم بتحميله. سيبدأ اسم الأصل باسم الفيديو وسيتم إلحاقه بمعرف فريد. يمكنك تحميل نفس الفيديو مرتين وسيكون موجودا في أصلين مختلفين.
- يجب أن توافق على العبارة "لدي جميع الحقوق لاستخدام المحتوى/الملف، وتوافق على أنه ستتم معالجته وفقا لشروط الخدمات عبر الإنترنت وبيان خصوصية Microsoft." حدد أوافق وقم بالتحميل.
- حدد متابعة التحميل والإغلاق، أو إغلاق إذا كنت تريد مشاهدة تقدم تحميل الفيديو.
- كرر هذه العملية لكل ملف من الملفات التي تريد دفقها.
إنشاء أصل
az ams asset create -a <amsAccountName> -g <resourceGroupName> -n <myAsset>
لمزيد من المعلومات حول هذا الأمر، راجع مرجع CLI.
استخدام REST
إنشاء أصل باستخدام REST
راجع واجهة برمجة تطبيقات REST لإنشاء أصل.
استخدام cURL
ينشئ أمر Azure cURL التالي أصل خدمات وسائط جديد. استبدل القيم subscriptionIDو resourceGroupو بالقيم amsAccountName التي تعمل معها حاليا. امنح أصلك اسما عن طريق الإعداد assetName هنا.
curl -X PUT 'https://management.azure.com/subscriptions/00000000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.Media/mediaServices/amsAccountName/assets/myOutputAsset?api-version=2018-07-01' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"properties": {"description": "",}}'
إنشاء أصل باستخدام .NET
يقوم أمر Azure .NET التالي بإنشاء أصل خدمات وسائط جديد. استبدل القيم subscriptionIDو resourceGroupو بالقيم amsAccountName التي تعمل معها حاليا. امنح أصلك اسما عن طريق الإعداد assetName هنا.
private static async Task<Asset> CreateInputAssetAsync(
IAzureMediaServicesClient client,
string resourceGroupName,
string accountName,
string assetName,
string fileToUpload)
{
// In this example, we are assuming that the asset name is unique.
//
// If you already have an asset with the desired name, use the Assets.Get method
// to get the existing asset. In Media Services v3, the Get method on entities returns null
// if the entity doesn't exist (a case-insensitive check on the name).
// Call Media Services API to create an Asset.
// This method creates a container in storage for the Asset.
// The files (blobs) associated with the asset will be stored in this container.
Asset asset = await client.Assets.CreateOrUpdateAsync(resourceGroupName, accountName, assetName, new Asset());
// Use Media Services API to get back a response that contains
// SAS URL for the Asset container into which to upload blobs.
// That is where you would specify read-write permissions
// and the exparation time for the SAS URL.
var response = await client.Assets.ListContainerSasAsync(
resourceGroupName,
accountName,
assetName,
permissions: AssetContainerPermission.ReadWrite,
expiryTime: DateTime.UtcNow.AddHours(4).ToUniversalTime());
var sasUri = new Uri(response.AssetContainerSasUrls.First());
// Use Storage API to get a reference to the Asset container
// that was created by calling Asset's CreateOrUpdate method.
BlobContainerClient container = new BlobContainerClient(sasUri);
BlobClient blob = container.GetBlobClient(Path.GetFileName(fileToUpload));
// Use Strorage API to upload the file into the container in storage.
await blob.UploadAsync(fileToUpload);
return asset;
}
إنشاء أصل باستخدام Python
تفترض الدالات في قصاصات التعليمات البرمجية Python أن لديك:
- استيراد الوحدات النمطية الضرورية. قد لا تحتاج إلى جميع الوحدات النمطية الموضحة هنا. إذا لم تستخدم التعليمات البرمجية أدناه الوحدة النمطية، يمكنك حذفها.
- إنشاء وتحرير ملف .env يحتوي على قيم المصادقة الخاصة بك. يمكنك الحصول على ملف sample.env من نماذج Media Services Python.
- قراءة متغيرات البيئة وإنشاء مثيل لها باستخدام load_env() كما هو موضح أدناه. اعتمادا على ما تقوم به، قد تحتاج أو لا تحتاج إلى بعض المتغيرات.
- إنشاء عميل خدمات الوسائط كما هو موضح أدناه.
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.mgmt.media import AzureMediaServices
from azure.mgmt.media.models import (Asset)
import os
#Get environment variables
load_dotenv()
subscriptionId = os.getenv("SUBSCRIPTIONID")
accountName=os.getenv("ACCOUNTNAME")
resourceGroupName=os.getenv("RESOURCEGROUP")
clientId = os.getenv("AZURE_CLIENT_ID")
storageAccountName=os.getenv("STORAGEACCOUNTNAME")
# Create the Media Services client and authenticate using the DefaultAzureCredential
default_credential = DefaultAzureCredential()
client = AzureMediaServices(default_credential, subscriptionId)
#Create an Asset object
#From SDK
# Asset(*, alternate_id: Optional[str] = None, description: Optional[str] = None, container: Optional[str] = None,
# storage_account_name: Optional[str] = None, **kwargs)
assetName = "MyAsset"
assetObj = Asset(alternate_id="myAlternateId",description="My description")
#From SDK
#create_or_update(resource_group_name: str, account_name: str, asset_name: str, parameters: "_models.Asset", **kwargs: Any) -> _models.Asset
def createAsset(account_name, resource_group_name, asset_name,asset):
thisAsset = client.assets.create_or_update(account_name, resource_group_name, asset_name,asset)
createAsset(resourceGroupName,accountName,assetName,assetObj)