none
동영상 파일 코드 변환에 대해 질문 드립니다. RRS feed

  • 질문

  • 안녕하세요.

    동영상 파일 코드 변환 예제에서 wmv -> mp4  변환은 테스트 해보니 잘 됩니다.

    그러나 wmv -> mp3 는 아무런 반응 없이 종료 됩니다.

    아래와 같이 인코딩 프로필을 수정했습니다.

              AudioEncodingQuality audioEncodingProfile = AudioEncodingQuality.Low;
               MediaEncodingProfile profile =
                   MediaEncodingProfile.CreateMp3(audioEncodingProfile);


    • 편집됨 몽실이 2012년 10월 2일 화요일 오전 10:27
    • 이동됨 Jina Lee 2012년 10월 23일 화요일 오전 7:54 (이전 위치:Windows 스토어 앱)
    2012년 10월 2일 화요일 오전 10:26

모든 응답

  • 몽실이님, 답변이 늦어져서 죄송합니다.

    위 문제에 대해서 해결하셨나요?

    제 생각에는 windows 8 App개발시 mp3지원하며 해당 올려주신 소스상에는 문제가 없어보입니다. 다른 호환성 및 충돌부분을 고려해보셔야 할 것 같습니다.

    • 편집됨 Jina Lee 2012년 10월 15일 월요일 오전 7:14
    2012년 10월 15일 월요일 오전 7:12
  • 아직 해결 못했습니다. 그래서 지금 이 기능 보류 중입니다. ;;

    하단 부분 실행 부분에서 try도 안잡히고 바로 앱 종료 발생 합니다.       

             PrepareTranscodeResult prepareOp = null;
               try
               {

                    prepareOp = await  transcoder.PrepareFileTranscodeAsync(srcFile, _OutputFile, profile);
               }
               catch (Exception e)
               {
               }

    cf) 저는 MP3 지원이 아니라 변환 물어본건데  avi, wmv등 -> Mp3로 변환 가능한거 맞나요?  그럼 Mp3로 변환 가능한 파일이 무엇 인가요? 

    2012년 10월 16일 화요일 오후 1:16
  • 몽실이님, 안녕하세요.

    디버깅을 하지못하는 상황에서 답변드리기 매우 어렵네요 ^^;;; 아래 소스 참고 해 보셨나요?

    Unknown failure 를 발생시킬것으로 예상되어지지만, 시도 Exception아니 아래와같은 방법 시도 부탁드립니다.

    파일을 코드 변환하려면 새 MediaTranscoder 개체를 만들고 MediaTranscoder.PrepareFileTranscodeAsync 메서드를 호출합니다. 원본 파일, 대상 파일 및 인코딩 프로필을 전달합니다. 그런 다음 비동기 코드 변환 작업에서 반환된 PrepareTranscodeResult 개체의 TranscodeAsync 메서드를 호출합니다. 비동기 작업의 오류, 진행률 및 완료를 처리하는 메서드를 만들 수도 있습니다.

    이 샘플 코드의 메서드는 OutputText라는 사용자 정의 메서드를 호출합니다.  이 메서드는 UI(사용자 인터페이스)에 메시지를 출력하는 도우미 메서드입니다.

    async void TranscodeFile(StorageFile srcFile, StorageFile destFile)
    {
        MediaEncodingProfile profile =
            MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD720p);
    
        MediaTranscoder transcoder = new MediaTranscoder();
    
        PrepareTranscodeResult prepareOp = await
            transcoder.PrepareFileTranscodeAsync(srcFile, destFile, profile);
    
        if (prepareOp.CanTranscode)
        {
            var transcodeOp = prepareOp.TranscodeAsync();
            transcodeOp.Progress +=
                new AsyncActionProgressHandler<double>(TranscodeProgress);
            transcodeOp.Completed +=
                new AsyncActionWithProgressCompletedHandler<double>(TranscodeComplete);
        }
        else
        {
            switch (prepareOp.FailureReason)
            {
                case TranscodeFailureReason.CodecNotFound:
                    OutputText("Codec not found.");
                    break;
                case TranscodeFailureReason.InvalidProfile:
                    OutputText("Invalid profile.");
                    break;
                default:
                    OutputText("Unknown failure.");
                    break;
            }
        }
    }
    

    [참고자료]

    Quickstart: transcoding video files (Windows Store apps using C#/VB/C++ and XAML)
    http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh868172(v=win.10).aspx

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    2012년 10월 19일 금요일 오전 5:36