für Lösungen für Probleme mit der Verwendung von Media Services.
.
In diesem Artikel erfahren Sie, wie Sie ein Media Services-Medienobjekt erstellen. Sie verwenden ein Medienobjekt zum Speichern von Medieninhalten für die Codierung und das Streaming. Weitere Informationen zu Media Services-Medienobjekten finden Sie unter Medienobjekte in Azure Media Services v3.
Verwenden Sie die folgenden Methoden, um ein Media Services-Medienobjekt zu erstellen.
Das Erstellen von Medienobjekten im Portal ist so einfach wie das Hochladen einer Datei.
Videos hochladen
Sie müssen über ein Media Services-Konto, ein Speicherkonto und einen Standardstreamingendpunkt verfügen.
- Navigieren Sie zu dem Media Services-Konto, mit dem Sie arbeiten möchten.
- Wählen Sie Medienobjekte aus. Medienobjekte sind die Container, in denen Sie Ihre Medieninhalte speichern.
- Wählen Sie die Option Hochladen. Der Bildschirm „Neue Medienobjekte hochladen“ wird angezeigt.
- Wählen Sie im Dropdownmenü Speicherkonto das Speicherkonto aus, das Sie für das Media Services-Konto erstellt haben. Dieses sollte standardmäßig ausgewählt sein.
- Wählen Sie das Dateiordnersymbol neben dem Feld „Dateien hochladen“ aus.
- Wählen Sie die Mediendateien aus, die Sie verwenden möchten. Für jedes hochgeladene Video wird ein Medienobjekt erstellt. Der Name des Medienobjekts beginnt mit dem Namen des Videos und wird durch einen eindeutigen Bezeichner ergänzt. Sie könnten dasselbe Video zweimal hochladen, in diesem Fall würde es sich in zwei verschiedenen Medienobjekten befinden.
- Sie müssen die folgende Erklärung bestätigen: „Ich verfüge über alle Rechte zur Verwendung der Inhalte/Dateien und stimme einer Verarbeitung gemäß Bestimmungen für Onlinedienste und Datenschutzerklärung zu.“ Wählen Sie Zustimmen und hochladen aus.
- Wählen Sie Upload fortsetzen und schließen oder Schließen aus, wenn Sie den Fortschritt des Videouploads verfolgen möchten.
- Wiederholen Sie diesen Vorgang für jede der Dateien, die Sie streamen möchten.
Erstellen eines Medienobjekts
az ams asset create -a <amsAccountName> -g <resourceGroupName> -n <myAsset>
Weitere Informationen zu diesem Befehl finden Sie in der CLI-Referenz.
Verwenden von REST
Erstellen eines Medienobjekts mit REST
Informationen zum Erstellen eines Medienobjekts finden Sie in der REST-API.
Verwenden von cURL
Mit dem folgenden Azure-cURL-Befehl wird ein neues Media Services-Medienobjekt erstellt. Ersetzen Sie die Werte subscriptionID
, resourceGroup
und amsAccountName
durch aktuell verwendete Werte. Benennen Sie Ihr Medienobjekt, indem Sie hier assetName
festlegen.
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": "",}}'
Erstellen eines Medienobjekts mit .NET
Mit dem folgenden Azure .NET-Befehl wird ein neues Media Services-Medienobjekt erstellt. Ersetzen Sie die Werte subscriptionID
, resourceGroup
und amsAccountName
durch aktuell verwendete Werte. Benennen Sie Ihr Medienobjekt, indem Sie hier assetName
festlegen.
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;
}
Erstellen eines Medienobjekts mit Python
Die Funktionen in den Python-Codeausschnitten gehen davon aus, dass Sie folgendes haben:
- Die erforderlichen Module importiert. Möglicherweise benötigen Sie nicht alle hier gezeigten Module. Wenn der folgende Code das Modul nicht verwendet, können Sie es auslassen.
- Eine .env-Datei, die Ihre Authentifizierungswerte enthält, erstellt und bearbeitet. Sie können eine Beispiel-.env-Datei aus den Media Services Python-Beispielen abrufen.
- Die Umgebungsvariablen mithilfe von load_env() wie unten beschrieben gelesen und instanziiert. Je nachdem, was Sie tun, benötigen Sie einige der Variablen möglicherweise oder nicht.
- Einen Media Services Client wie unten erstellt.
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)