비디오 업로드 및 인덱싱Upload and index your videos

비디오를 업로드 한 후에는 Video Indexer (선택 사항) 비디오를 인코딩합니다 (이 문서에서 설명).Once your video has been uploaded, Video Indexer (optionally) encodes the video (discussed in the article). Video Indexer 계정을 만들 때 평가판 계정(특정의 체험 인덱싱 시간(분)을 가져오는 경우) 또는 유료 옵션(할당량으로 제한되지 않은 경우)을 선택할 수 있습니다.When creating a Video Indexer account, you can choose a free trial account (where you get a certain number of free indexing minutes) or a paid option (where you are not limited by the quota). 평가판을 사용하면 Video Indexer에서 웹 사이트 사용자에게 최대 600분의 체험 인덱싱을 제공하고, API 사용자에게는 최대 2,400분의 체험 인덱싱을 제공합니다.With free trial, Video Indexer provides up to 600 minutes of free indexing to website users and up to 2400 minutes of free indexing to API users. 유료 옵션을 사용하면 Azure 구독 및 Azure Media Services 계정에 연결되는 Video Indexer 계정을 만듭니다.With paid option, you create a Video Indexer account that is connected to your Azure subscription and an Azure Media Services account. 인덱싱된 시간(분)에 대한 비용을 지불하는 경우 자세한 내용은 Media Services 가격 책정을 참조하세요.You pay for minutes indexed, for more information, see Media Services pricing.

Video Indexer API를 사용하여 비디오를 업로드할 때 다음과 같은 업로드 옵션이 있습니다.When uploading videos with Video Indexer API, you have the following upload options:

  • URL에서 비디오를 업로드합니다(기본 설정).upload your video from a URL (preferred),
  • 비디오 파일을 요청 본문의 바이트 배열로 보냅니다.send the video file as a byte array in the request body,
  • 자산 ID를 제공하여 기존 Azure Media Services 자산을 사용합니다(유료 계정에서만 지원됨).Use existing Azure Media Services asset by providing the asset ID (supported in paid accounts only).

이 문서에서는 다음 옵션으로 비디오를 업로드 하 고 인덱싱하는 방법을 보여 줍니다.The article shows how to upload and index your videos with these options:

Video Indexer에 대해 지원되는 파일 형식Supported file formats for Video Indexer

Video Indexer와 함께 사용할 수 있는 파일 형식 목록은 입력 컨테이너/파일 형식 문서를 참조하세요.See the input container/file formats article for a list of file formats that you can use with Video Indexer.

비디오 파일 저장소Video files storage

  • 유료 Video Indexer 계정을 사용 하면 Azure 구독 및 Azure Media Services 계정에 연결 된 Video Indexer 계정을 만들 수 있습니다.With a paid Video Indexer account, you create a Video Indexer account that's connected to your Azure subscription and an Azure Media Services account. 자세한 내용은 Azure에 연결 된 Video Indexer 계정 만들기를 참조 하세요.For more information, see Create a Video Indexer account connected to Azure.
  • 비디오 파일은 Azure Media Services 하 여 Azure storage에 저장 됩니다.Video files are stored in Azure storage by Azure Media Services. 시간 제한이 없습니다.There is no time limitation.
  • Video Indexer 하 여 비디오 및 오디오 파일 뿐만 아니라 해당 파일에서 추출 된 메타 데이터 및 정보를 언제 든 지 삭제할 수 있습니다.You can always delete your video and audio files as well as any metadata and insights extracted from them by Video Indexer. Video Indexer에서 파일을 삭제하면 파일과 해당 메타데이터 및 인사이트가 Video Indexer에서 영구적으로 제거됩니다.Once you delete a file from Video Indexer, the file and its metadata and insights are permanently removed from Video Indexer. 그러나 Azure Storage에 사용자 고유의 백업 솔루션을 구현한 경우에는 파일이 Azure Storage에 유지됩니다.However, if you have implemented your own backup solution in Azure storage, the file remains in your Azure storage.
  • Video Indexer 웹 사이트가 나 업로드 API를 사용 하 여 업로드를 수행 하는지 여부에 관계 없이 비디오의 지 속성 동일 합니다.The persistency of a video is identical, regardless if the upload is done form the Video Indexer website or using the Upload API.

Video Indexer 웹 사이트를 사용 하 여 비디오 업로드 및 인덱싱Upload and index a video using the Video Indexer website

참고

비디오 이름은 80자를 넘지 않아야 합니다.A name of the video must be no greater than 80 characters.

  1. Video Indexer 웹 사이트에서 로그인합니다.Sign in on the Video Indexer website.

  2. 비디오를 업로드하려면 업로드 단추나 링크를 누릅니다.To upload a video, press the Upload button or link.

    업로드

  3. 비디오가 업로드되면 Video Indexer가 인덱싱 및 비디오 분석을 시작합니다.Once your video has been uploaded, Video Indexer starts indexing and analyzing the video.

    업로드 진행률

  4. Video Indexer가 분석을 완료하면 비디오에 대한 링크와 비디오 분석 결과에 관한 간단한 설명이 포함된 이메일을 받게 됩니다.Once Video Indexer is done analyzing, you will get an email with a link to your video and a short description of what was found in your video. 예: 사람, 주제, OCR.For example: people, topics, OCRs.

API를 사용 하 여 업로드 및 인덱싱Upload and index with API

비디오 업로드 API를 사용 하 여 URL을 기준으로 비디오를 업로드 하 고 인덱싱합니다.Use the Upload video API to upload and index your videos based on a URL. 다음 코드 샘플에는 바이트 배열을 업로드 하는 방법을 보여 주는 주석 처리 된 코드가 포함 되어 있습니다.The code sample that follows includes the commented out code that shows how to upload the byte array.

구성 및 매개 변수Configurations and params

이 섹션에서는 선택적 매개 변수 중 일부와 매개 변수를 설정해야 하는 경우에 대해 설명합니다.This section describes some of the optional parameters and when you would want to set them. 최신 매개 변수 정보는 video API 업로드 를 참조 하세요.For the most up to date params info, see the Upload video API.

externalIDexternalID

이 매개 변수를 사용하면 비디오와 연결할 ID를 지정할 수 있습니다.This parameter enables you to specify an ID that will be associated with the video. ID는 외부 "VCM(비디오 콘텐츠 관리)" 시스템 통합에 적용할 수 있습니다.The ID can be applied to external "Video Content Management" (VCM) system integration. Video Indexer 포털에 있는 비디오는 지정된 외부 ID를 사용하여 검색할 수 있습니다.The videos that are located in the Video Indexer portal can be searched using the specified external ID.

callbackUrlcallbackUrl

POST 요청을 사용하여 고객에게 다음 이벤트를 알리는 데 사용되는 URL입니다.A URL that is used to notify the customer (using a POST request) about the following events:

  • 인덱싱 상태 변경Indexing state change:
    • 속성:Properties:

      NameName DescriptionDescription
      idid 비디오 IDThe video ID
      statestate 비디오 상태The video state
    • 예: https://test.com/notifyme?projectName=MyProject&id=1234abcd&state=ProcessedExample: https://test.com/notifyme?projectName=MyProject&id=1234abcd&state=Processed

  • 비디오에서 식별된 사용자Person identified in video:
    • 속성Properties

      이름Name DescriptionDescription
      idid 비디오 IDThe video ID
      faceIdfaceId 비디오 인덱스에 표시되는 얼굴 IDThe face ID that appears in the video index
      knownPersonIdknownPersonId 얼굴 모델 내에서 고유한 사람 IDThe person ID that is unique within a face model
      personNamepersonName 사람의 이름The name of the person
      • 예: https://test.com/notifyme?projectName=MyProject&id=1234abcd&faceid=12&knownPersonId=CCA84350-89B7-4262-861C-3CAC796542A5&personName=Inigo_MontoyaExample: https://test.com/notifyme?projectName=MyProject&id=1234abcd&faceid=12&knownPersonId=CCA84350-89B7-4262-861C-3CAC796542A5&personName=Inigo_Montoya
기타 고려 사항Other considerations
  • Video Indexer는 원래 URL에 제공된 기존 매개 변수를 반환합니다.Video Indexer returns any existing parameters provided in the original URL.
  • 제공된 URL은 인코딩해야 합니다.The provided URL must be encoded.

indexingPresetindexingPreset

이 매개 변수를 사용 하 여 오디오 또는 비디오 파일에 적용할 AI 번들을 정의 합니다.Use this parameter to define the AI bundle you would like to apply on your audio or video file . 이 매개 변수는 인덱싱 프로세스를 구성하는 데 사용됩니다.This parameter is used to configure the indexing process. 다음 값을 지정할 수 있습니다.You can specify the following values:

  • AudioOnly – 오디오만 사용 하 여 정보를 인덱싱하고 추출 합니다 (비디오 무시).AudioOnly – Index and extract insights using audio only (ignoring video).

  • VideoOnly -비디오 전용 (오디오 무시)을 사용 하 여 정보를 인덱싱하고 추출 합니다.VideoOnly - Index and extract insights using video only (ignoring audio).

  • Default – 오디오와 비디오를 모두 사용 하 여 정보를 인덱싱하고 추출 합니다.Default – Index and extract insights using both audio and video.

  • DefaultWithNoiseReduction – 오디오 및 비디오에서 정보를 인덱싱하고 추출할 때 오디오 스트림에 노이즈 감소 알고리즘을 적용 합니다.DefaultWithNoiseReduction – Index and extract insights from both audio and video, while applying noise reduction algorithms on audio stream.

    DefaultWithNoiseReduction이제 값이 기본 사전 설정 (사용 되지 않음)에 매핑됩니다.The DefaultWithNoiseReduction value is now mapped to default preset (deprecated).

  • BasicAudio -기본 오디오 기능 (녹음, 번역, 서식 출력 캡션 및 자막)만 포함 하 여 오디오만 사용 하 여 (비디오 무시) 정보를 인덱싱하고 추출 합니다.BasicAudio - Index and extract insights using audio only (ignoring video), including only basic audio features (transcription, translation, format output captions and subtitles).

  • AdvancedAudio -표준 오디오 분석 외에도 고급 오디오 기능 (오디오 이벤트 검색)을 포함 하 여 오디오만 사용 하 여 (비디오 무시) 정보를 인덱싱하고 추출 합니다.AdvancedAudio - Index and extract insights using audio only (ignoring video), including advanced audio features (audio event detection) in addition to the standard audio analysis.

참고

Video Indexer는 최대 두 개의 오디오 트랙을 포함 합니다.Video Indexer covers up to two tracks of audio. 파일에 더 많은 오디오 트랙이 있는 경우 하나의 트랙으로 처리 됩니다.If there are more audio tracks in the file, they will be treated as one track.
트랙을 별도로 인덱싱 하려면 관련 오디오 파일을 추출 하 고로 인덱스를 만들어야 AudioOnly 합니다.If you want to index the tracks separately, you will need to extract the relevant audio file and index it as AudioOnly.

가격은 선택한 인덱싱 옵션에 따라 달라집니다.Price depends on the selected indexing option. 자세한 내용은 Media Services 가격 책정을 참조 하세요.For more information refer to Media Services pricing.

prioritypriority

비디오는 Video Indexer에서 우선 순위에 따라 인덱싱됩니다.Videos are indexed by Video Indexer according to their priority. priority 매개 변수를 사용하여 인덱스 우선 순위를 지정합니다.Use the priority parameter to specify the index priority. 유효한 값은 Low(낮음), Normal(보통, 기본값), and High(높음)입니다.The following values are valid: Low, Normal (default), and High.

priority 매개 변수는 유료 계정에서만 지원됩니다.Priority parameter is only supported for paid accounts.

streamingPresetstreamingPreset

비디오가 업로드되면 Video Indexer에서 필요에 따라 비디오를 인코딩합니다.Once your video has been uploaded, Video Indexer, optionally encodes the video. 그런 다음, 비디오 인덱싱 및 분석을 계속 진행합니다.Then, proceeds to indexing, and analyzing the video. Video Indexer에서 분석이 완료되면 비디오 ID가 있는 알림을 받게 됩니다.When Video Indexer is done analyzing, you will get a notification with the video ID.

비디오 업로드 또는 비디오 재인덱싱 API를 사용하는 경우 선택적 매개 변수 중 하나는 streamingPreset입니다.When using the Upload video or Re-Index Video API, one of the optional parameters is streamingPreset. streamingPresetDefault, SingleBitrate 또는 AdaptiveBitrate로 설정하면 인코딩 프로세스가 트리거됩니다.If you set streamingPreset to Default, SingleBitrate, or AdaptiveBitrate, the encoding process is triggered. 인덱싱 및 인코딩 작업이 완료되면 비디오를 스트림할 수 있도록 비디오가 게시됩니다.Once the indexing and encoding jobs are done, the video is published so you can also stream your video. 비디오를 스트림하려는 스트리밍 엔드포인트는 실행 중 상태여야 합니다.The Streaming Endpoint from which you want to stream the video must be in the Running state.

SingleBitrate 전송률의 경우 출력 마다 표준 인코더 비용이 적용 됩니다.For SingleBitrate, standard encoder cost will apply per the output. 비디오 높이가 720 보다 크거나 같으면 Video Indexer 1280x720로 인코딩합니다.If the video height is greater or equal to 720, Video Indexer encodes it as 1280x720. 그렇지 않으면 640x468입니다.Otherwise, as 640x468. 기본 설정은 콘텐츠 인식 인코딩입니다.The Default setting is content aware encoding.

인덱싱 및 인코딩 작업을 실행하려면 Video Indexer 계정에 연결된 Azure Media Services 계정에 예약 단위가 필요합니다.In order to run the indexing and encoding jobs, the Azure Media Services account connected to your Video Indexer account, requires Reserved Units. 자세한 내용은 미디어 처리 크기 조정을 참조하세요.For more information, see Scaling Media Processing. 이러한 작업은 컴퓨팅 집약적 작업이므로 S3 단위 유형을 사용하는 것이 좋습니다.Since these are compute intensive jobs, S3 unit type is highly recommended. RU의 수는 병렬로 실행할 수 있는 작업의 최대 수를 정의합니다.The number of RUs defines the max number of jobs that can run in parallel. 기본 추천 사항은 10개의 S3 RU입니다.The baseline recommendation is 10 S3 RUs.

비디오 인덱싱만 수행하고 인코딩은 수행하지 않으려면 streamingPresetNoStreaming으로 설정합니다.If you only want to index your video but not encode it, set streamingPresetto NoStreaming.

videoUrlvideoUrl

인덱싱할 비디오/오디오 파일의 URL입니다.A URL of the video/audio file to be indexed. URL은 미디어 파일을 가리켜야 합니다(HTML 페이지는 지원되지 않음).The URL must point at a media file (HTML pages are not supported). 파일은 URI의 일부로 제공되는 액세스 토큰으로 보호할 수 있으며, 파일을 제공하는 엔드포인트는 TLS 1.2 이상으로 보호해야 합니다.The file can be protected by an access token provided as part of the URI and the endpoint serving the file must be secured with TLS 1.2 or higher. URL은 인코딩해야 합니다.The URL needs to be encoded.

videoUrl이 지정되지 않으면 Video Indexer에서 파일을 다중 파트/양식 본문 콘텐츠로 전달해야 합니다.If the videoUrl is not specified, the Video Indexer expects you to pass the file as a multipart/form body content.

코드 샘플Code sample

다음 C# 코드 조각에서는 모든 Video Indexer API를 사용하는 방법을 보여 줍니다.The following C# code snippet demonstrates the usage of all the Video Indexer APIs together.

다음 코드 샘플을 실행 하는 방법에 대 한 지침Instructions for running the following code sample

이 코드를 개발 플랫폼에 복사한 후에 API Management 인증 키와 비디오 URL의 두 매개 변수를 제공 해야 합니다.After copying this code into your development platform you will need to provide two parameters: API Management authentication key and video URL.

  • API 키 – API 키는 사용자가 Video Indexer 계정에서 작업을 수행 하기 위해 액세스 토큰을 가져올 수 있도록 하는 개인 API management 구독 키입니다.API key – API key is your personal API management subscription key, that will allow you to get an access token in order to perform operations on your Video Indexer account.

    API 키를 가져오려면 다음 흐름을 진행 합니다.To get your API key, go through this flow:

  • 비디오 URL – 인덱싱할 비디오/오디오 파일의 URL입니다.Video URL – A URL of the video/audio file to be indexed. URL은 미디어 파일을 가리켜야 합니다(HTML 페이지는 지원되지 않음).The URL must point at a media file (HTML pages are not supported). 파일은 URI의 일부로 제공되는 액세스 토큰으로 보호할 수 있으며, 파일을 제공하는 엔드포인트는 TLS 1.2 이상으로 보호해야 합니다.The file can be protected by an access token provided as part of the URI and the endpoint serving the file must be secured with TLS 1.2 or higher. URL은 인코딩해야 합니다.The URL needs to be encoded.

코드 샘플을 성공적으로 실행 하면 정보 위젯 URL 및 플레이어 위젯 URL이 포함 됩니다 .이 URL을 통해 각각 업로드 된 정보 및 비디오를 검사할 수 있습니다.The result of successfully running the code sample will include an insight widget URL and a player widget URL that will allow you to examine the insights and video uploaded respectively.

public async Task Sample()
{
    var apiUrl = "https://api.videoindexer.ai";
    var apiKey = "..."; // replace with API key taken from https://aka.ms/viapi

    System.Net.ServicePointManager.SecurityProtocol =
        System.Net.ServicePointManager.SecurityProtocol | System.Net.SecurityProtocolType.Tls12;

    // create the http client
    var handler = new HttpClientHandler();
    handler.AllowAutoRedirect = false;
    var client = new HttpClient(handler);
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", apiKey);

    // obtain account information and access token
    string queryParams = CreateQueryString(
        new Dictionary<string, string>()
        {
            {"generateAccessTokens", "true"},
            {"allowEdit", "true"},
        });
    HttpResponseMessage result = await client.GetAsync($"{apiUrl}/auth/trial/Accounts?{queryParams}");
    var json = await result.Content.ReadAsStringAsync();
    var accounts = JsonConvert.DeserializeObject<AccountContractSlim[]>(json);
    
    // take the relevant account, here we simply take the first, 
    // you can also get the account via accounts.First(account => account.Id == <GUID>);
    var accountInfo = accounts.First();

    // we will use the access token from here on, no need for the apim key
    client.DefaultRequestHeaders.Remove("Ocp-Apim-Subscription-Key");

    // upload a video
    var content = new MultipartFormDataContent();
    Console.WriteLine("Uploading...");
    // get the video from URL
    var videoUrl = "VIDEO_URL"; // replace with the video URL

    // as an alternative to specifying video URL, you can upload a file.
    // remove the videoUrl parameter from the query params below and add the following lines:
    //FileStream video =File.OpenRead(Globals.VIDEOFILE_PATH);
    //byte[] buffer =new byte[video.Length];
    //video.Read(buffer, 0, buffer.Length);
    //content.Add(new ByteArrayContent(buffer));

    queryParams = CreateQueryString(
        new Dictionary<string, string>()
        {
            {"accessToken", accountInfo.AccessToken},
            {"name", "video_name"},
            {"description", "video_description"},
            {"privacy", "private"},
            {"partition", "partition"},
            {"videoUrl", videoUrl},
        });
    var uploadRequestResult = await client.PostAsync($"{apiUrl}/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos?{queryParams}", content);
    var uploadResult = await uploadRequestResult.Content.ReadAsStringAsync();

    // get the video ID from the upload result
    string videoId = JsonConvert.DeserializeObject<dynamic>(uploadResult)["id"];
    Console.WriteLine("Uploaded");
    Console.WriteLine("Video ID:");
    Console.WriteLine(videoId);

    // wait for the video index to finish
    while (true)
    {
        await Task.Delay(10000);

        queryParams = CreateQueryString(
            new Dictionary<string, string>()
            {
                {"accessToken", accountInfo.AccessToken},
                {"language", "English"},
            });

        var videoGetIndexRequestResult = await client.GetAsync($"{apiUrl}/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos/{videoId}/Index?{queryParams}");
        var videoGetIndexResult = await videoGetIndexRequestResult.Content.ReadAsStringAsync();

        string processingState = JsonConvert.DeserializeObject<dynamic>(videoGetIndexResult)["state"];

        Console.WriteLine("");
        Console.WriteLine("State:");
        Console.WriteLine(processingState);

        // job is finished
        if (processingState != "Uploaded" && processingState != "Processing")
        {
            Console.WriteLine("");
            Console.WriteLine("Full JSON:");
            Console.WriteLine(videoGetIndexResult);
            break;
        }
    }

    // search for the video
    queryParams = CreateQueryString(
        new Dictionary<string, string>()
        {
            {"accessToken", accountInfo.AccessToken},
            {"id", videoId},
        });

    var searchRequestResult = await client.GetAsync($"{apiUrl}/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos/Search?{queryParams}");
    var searchResult = await searchRequestResult.Content.ReadAsStringAsync();
    Console.WriteLine("");
    Console.WriteLine("Search:");
    Console.WriteLine(searchResult);

    // Generate video access token (used for get widget calls)
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", apiKey);
    var videoTokenRequestResult = await client.GetAsync($"{apiUrl}/auth/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos/{videoId}/AccessToken?allowEdit=true");
    var videoAccessToken = (await videoTokenRequestResult.Content.ReadAsStringAsync()).Replace("\"", "");
    client.DefaultRequestHeaders.Remove("Ocp-Apim-Subscription-Key");

    // get insights widget url
    queryParams = CreateQueryString(
        new Dictionary<string, string>()
        {
            {"accessToken", videoAccessToken},
            {"widgetType", "Keywords"},
            {"allowEdit", "true"},
        });
    var insightsWidgetRequestResult = await client.GetAsync($"{apiUrl}/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos/{videoId}/InsightsWidget?{queryParams}");
    var insightsWidgetLink = insightsWidgetRequestResult.Headers.Location;
    Console.WriteLine("Insights Widget url:");
    Console.WriteLine(insightsWidgetLink);

    // get player widget url
    queryParams = CreateQueryString(
        new Dictionary<string, string>()
        {
            {"accessToken", videoAccessToken},
        });
    var playerWidgetRequestResult = await client.GetAsync($"{apiUrl}/{accountInfo.Location}/Accounts/{accountInfo.Id}/Videos/{videoId}/PlayerWidget?{queryParams}");
    var playerWidgetLink = playerWidgetRequestResult.Headers.Location;
     Console.WriteLine("");
     Console.WriteLine("Player Widget url:");
     Console.WriteLine(playerWidgetLink);
     Console.WriteLine("\nPress Enter to exit...");
     String line = Console.ReadLine();
     if (line == "enter")
     {
         System.Environment.Exit(0);
     }

}

private string CreateQueryString(IDictionary<string, string> parameters)
{
    var queryParameters = HttpUtility.ParseQueryString(string.Empty);
    foreach (var parameter in parameters)
    {
        queryParameters[parameter.Key] = parameter.Value;
    }

    return queryParameters.ToString();
}

public class AccountContractSlim
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Location { get; set; }
    public string AccountType { get; set; }
    public string Url { get; set; }
    public string AccessToken { get; set; }
}

일반 오류Common errors

다음 표에 나열된 상태 코드는 업로드 작업에서 반환될 수 있습니다.The status codes listed in the following table may be returned by the Upload operation.

상태 코드Status code ErrorType(응답 본문 내)ErrorType (in response body) 설명Description
409409 VIDEO_INDEXING_IN_PROGRESSVIDEO_INDEXING_IN_PROGRESS 지정된 계정에서 동일한 비디오가 이미 처리되고 있습니다.Same video is already in progress of being processed in the given account.
400400 VIDEO_ALREADY_FAILEDVIDEO_ALREADY_FAILED 지정된 계정에서 2시간 이내에 동일한 비디오를 처리하지 못했습니다.Same video failed to process in the given account less than 2 hours ago. API 클라이언트에서 2시간 이상 기다린 후에 비디오를 다시 업로드해야 합니다.API clients should wait at least 2 hours before re-uploading a video.
429429 평가판 계정에는 분당 5 개의 업로드가 허용 됩니다.Trial accounts are allowed 5 uploads per minute. 유료 계정은 분당 50 업로드가 허용 됩니다.Paid accounts are allowed 50 uploads per minute.

고려 사항 및 제한 사항 업로드Uploading considerations and limitations

  • 비디오 이름은 80자를 넘지 않아야 합니다.A name of the video must be no greater than 80 characters.

  • URL을 기반으로 하여 비디오를 업로드하는 경우(기본 설정) TLS 1.2 이상을 사용하여 엔드포인트를 보호해야 합니다.When uploading your video based on the URL (preferred) the endpoint must be secured with TLS 1.2 (or higher).

  • URL 옵션을 사용하면 업로드 크기가 30GB로 제한됩니다.The upload size with the URL option is limited to 30GB.

  • 요청 URL 길이는 6144자로 제한되며 쿼리 문자열 URL 길이는 4096자로 제한됩니다.The request URL length is limited to 6144 characters where the query string URL length is limited to 4096 characters .

  • 바이트 배열 옵션을 사용하면 업로드 크기가 2GB로 제한됩니다.The upload size with the byte array option is limited to 2GB.

  • 바이트 배열 옵션은 30분 후 시간 초과됩니다.The byte array option times out after 30 min.

  • Param에 제공 된 URL을 videoURL 인코딩해야 합니다.The URL provided in the videoURL param needs to be encoded.

  • 인덱싱 Media Services 자산에는 URL의 인덱싱과 동일한 제한 사항이 있습니다.Indexing Media Services assets has the same limitation as indexing from URL.

  • 단일 파일에 대한 Video Indexer의 최대 기간 제한은 4시간입니다.Video Indexer has a max duration limit of 4 hours for a single file.

  • URL에 액세스할 수 있어야 합니다(예: 공용 URL).The URL needs to be accessible (for example a public URL).

    개인 URL인 경우 요청에서 액세스 토큰을 제공해야 합니다.If it is a private URL, the access token need to be provided in the request.

  • URL은 페이지에 대 한 링크와 같은 웹 페이지가 아닌 유효한 미디어 파일을 가리켜야 합니다 www.youtube.com .The URL has to point to a valid media file and not to a webpage, such as a link to the www.youtube.com page.

  • 유료 계정에서는 분당 최대 50개의 영화를 업로드할 수 있으며 평가판 계정에서는 분당 최대 5개의 영화를 업로드할 수 있습니다.In a paid account you can upload up to 50 movies per minute, and in a trial account up to 5 movies per minute.

이전 .NET Framework는 기본적으로 TLS 1.2로 설정되지 않으므로It is recommended to use .NET framework version 4.6.2. .NET Framework 버전 4.6.2 이상을 사용하는 것이 좋습니다.or higher because older .NET frameworks do not default to TLS 1.2.

이전 .NET Framework를 사용해야 하는 경우 REST API를 호출하기 전에 코드에 다음과 같은 한 줄을 추가합니다.If you must use older .NET frameworks, add one line into your code before making the REST API call:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

다음 단계Next steps

API에 의해 생성 된 Azure Video Indexer 출력 검사Examine the Azure Video Indexer output produced by API