2013-07-31 1 views
0

, 우리는 this information을 바탕으로 오류 File type or codec not supported.을 얻을, 3GP 가져 오기 지원해야합니다. 3gp를 제대로 가져 와서 MP4로 변환하는 방법은 무엇입니까?Azure Media Services - 3gp 파일에서 "파일 형식 또는 코덱이 지원되지 않습니다."오류를 반환합니다. 업로드 변환/인코딩 및 푸른 미디어 서비스에서하고 .3gp 비디오 파일을 준비하기 위해 시도 할 때

The job stopped due to cancellation or an error. 
Job ID: nb:jid:UUID:6dc360df-de54-eb45-ae0d-bdc3d2c810fe 
Job Name: Encoding and Packaging for dedf426e0b5b41199e8a111f27744890 
Job State: Error 
Error Details: 
Task Id: nb:tid:UUID:12424cbb-0013-4685-8e6b-b224d99db186 
    Error Code: UserInput 
    Error Message: File type or codec not supported. 

우리의 코드 :

는 여기에 우리의 내부 로그가 무슨 말

/// <summary> 
/// This method performs all processing necessary to the media in question. This method will wait while processing is completed. 
/// </summary> 
/// <param name="fileName">Unique file name with extension</param> 
/// <returns>IsSuccess</returns> 
public bool ProcessMedia(string fileName) 
{ 
    var mediaCloud = GetCloudMediaContext(); 

    string assetName = GetAssetNameFromFileName(fileName); 

    var asset = mediaCloud.Assets.Where(a => a.Name == assetName).SingleOrDefault(); 
    IJob job = mediaCloud.Jobs.Create("Encoding and Packaging for " + asset.Name); 
    var encoder = GetMediaProcessor(_mediaProcessorNameMap[MediaProcessors.WindowsAzureMediaEncoder]); 

    /* Firing off a chain of encoding jobs 
    * 1) Original Encoding -> MP4 (Direct download stream) 
    * 2) MP4 -> IIS Smooth Streaming (Microsoft Silverlight) 
    * 3) IIS -> HLS (Apple and IOS) */ 

    //MP4 
    var mp4Task = job.Tasks.AddNew(String.Format("MP4 Encoding for {0}", asset.Name), encoder, "H264 Broadband 720p", TaskOptions.None); 
    mp4Task.InputAssets.Add(asset); 
    var mp4Asset = mp4Task.OutputAssets.AddNew(String.Format(MP4_ASSET_NAME_FORMAT, asset.Name), AssetCreationOptions.None); 

    //Generate thumbnails from MP4 
    foreach (ThumbnailTypes thumbnailType in Enum.GetValues(typeof(ThumbnailTypes))) 
    { 
     var thumbnailTask = job.Tasks.AddNew(String.Format("Thumbnail Generation for {0}", asset.Name), encoder, 
      String.Format(TASK_THUMBNAIL_GENERATION_FORMAT, thumbnailType, ImageProcessor.ThumbnailSizes[thumbnailType].Height), 
      TaskOptions.None); 
     thumbnailTask.InputAssets.Add(mp4Asset); 
     var thumnailAsset = thumbnailTask.OutputAssets.AddNew(String.Format(THUMBNAIL_ASSET_NAME_FORMAT, thumbnailType, asset.Name), AssetCreationOptions.None); 
    } 

    //IIS 
    var encodingTask = job.Tasks.AddNew(String.Format("IIS Encoding for {0}", asset.Name), encoder, "H264 Smooth Streaming 720p", TaskOptions.None); 
    encodingTask.InputAssets.Add(mp4Asset); 
    var ssOutput = encodingTask.OutputAssets.AddNew(String.Format(IIS_ASSET_NAME_FORMAT, asset.Name), AssetCreationOptions.None); 

    //HLS 
    var packager = GetMediaProcessor(_mediaProcessorNameMap[MediaProcessors.WindowsAzureMediaPackager]); 
    var conversionTask = job.Tasks.AddNew(String.Format("HLS Packaging for {0}", asset.Name), packager, TASK_MSMOOTH_TO_HLS, TaskOptions.None); 
    conversionTask.InputAssets.Add(ssOutput); 
    conversionTask.OutputAssets.AddNew(String.Format(HLS_ASSET_NAME_FORMAT, asset.Name), AssetCreationOptions.None); 

    if (job.Tasks.Count() == 0) //no processing was required 
     return true; 

    job.StateChanged += new EventHandler<JobStateChangedEventArgs>(StateChanged); 

    job.Submit(); 

    // Check job execution and wait for job to finish. 
    Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None); 
    progressJobTask.Wait(); 

    return job.State == JobState.Finished; 
} 

답변

1

당신은 Azure Media Encoder formats and codecs 볼 것이다,하지만 마이크로 소프트 익스프레션 인코더는 파일 형식을 지원.

위의 문서는 .3GPP.3GPP2 파일 형식으로 지원되는 것을 말한다. 그리고 비디오 코덱은 매우 제한적입니다 : H.264, MPEG-1, MPEG-2, MPEG-4, VC-1, Windows Media Video, DV.

3GPP 데이터 here 기준으로합니다. 파일 형식 자체가 여러 비디오 및 오디오 코덱을 지원하는 것 같습니다. Azure Media Encoder에서는 거의 지원되지 않습니다. 제 3 자 도구 (예 : VLC)를 사용하여 3GP 파일의 Audio and Video codecs을 다시 확인하고 Azure Media Encoder가 지원하는 목록에 있는지 확인하십시오. 파일 확장자는 해당 파일 내에서 미디어를 인코딩하는 데 사용 된 코덱을 정의하지 않습니다.

+0

나는 VLC과 비디오 파일을 검사하고 그것을 보여 주었다 : 비디오'코덱 : MPEG-4 비디오 (MP4V)'와 오디오가'코덱 : MPEG-4는 푸른 지원하는 AMR 협 대역 (SAMR)'이후, 나는 가정 이 비디오에 사용 된 오디오 코덱은 지원되지 않습니다? –

+0

제공된 [정확한 설명서 링크] (http://msdn.microsoft.com/en-us/library/windowsazure/hh973634.aspx#import_formats)를 읽었 으면 AMR 오디오가 Windows Azure Media Encoder. 예, 오디오는 지원되지 않습니다. – astaykov