MP4⇔AVI

MP4 と AVI を相互に変換します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. Windows10 ストア・アプリを使うと MP4 と AVI を相互に変換するのは簡単です。
    AVI から MP4 への変換は AVI → MP4 を参照して下さい。
    今回は MP4 と AVI の相互変換のプログラムです。
    MediaEncodingProfile で AVI のプロファイルを設定します。
    MediaTranscoder を設定して、PrepareFileTranscodeAsync() を呼び出すと変換が行われます。
    source が元の File の StorageFolder で、destination が 返還後の File の StorageFolder です。
    using Windows.Storage;
    using Windows.Media.MediaProperties;
    using Windows.Media.Transcoding;
    
        MediaEncodingProfile profile =
            MediaEncodingProfile.CreateAvi(VideoEncodingQuality.HD720p);
        MediaTranscoder transcoder = new MediaTranscoder();
        PrepareTranscodeResult prepareOp = await
            transcoder.PrepareFileTranscodeAsync(source, destination, profile);
        if (prepareOp.CanTranscode)
        {
            var transcodeOp = prepareOp.TranscodeAsync();
        }
    
  2. AVI → MP4 のプロジェクトに二個目のボタンを設定してボタンクリックのイベントを設定します。
    ボタンクリックで MP4 を AVI に変換します。
            // MP4 → AVI
            async private void button1_Click(object sender, RoutedEventArgs e)
            {
                var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
                openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
                openPicker.FileTypeFilter.Add(".mp4");
                StorageFile source = await openPicker.PickSingleFileAsync();
    
                var savePicker = new Windows.Storage.Pickers.FileSavePicker();
                savePicker.SuggestedStartLocation =
                    Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
                savePicker.DefaultFileExtension = ".avi";
                savePicker.SuggestedFileName = "NewWave";
                savePicker.FileTypeChoices.Add("AVI", new string[] { ".avi" });
                StorageFile destination = await savePicker.PickSaveFileAsync();
    
                textBox.Text = "Start Convert";
                MediaEncodingProfile profile =
                MediaEncodingProfile.CreateAvi(VideoEncodingQuality.HD720p);
                MediaTranscoder transcoder = new MediaTranscoder();
                PrepareTranscodeResult prepareOp = await
                    transcoder.PrepareFileTranscodeAsync(source, destination, profile);
                if (prepareOp.CanTranscode)
                {
                    var transcodeOp = prepareOp.TranscodeAsync();
                }
                else
                {
                    switch (prepareOp.FailureReason)
                    {
                        case TranscodeFailureReason.CodecNotFound:
                            System.Diagnostics.Debug.WriteLine("Codec not found.");
                            break;
                        case TranscodeFailureReason.InvalidProfile:
                            System.Diagnostics.Debug.WriteLine("Invalid profile.");
                            break;
                        default:
                            System.Diagnostics.Debug.WriteLine("Unknown failure.");
                            break;
                    }
                }
                textBox.Text = "Complete";
            }
    
  3. 新しく追加したボタンをクリックすると、MP4 の入力ピッカーが開きます。
    続けて AVI の出力ピッカーが開きます。
    入力ファイルと出力ファイルを選択すると MP4 ファイルが変換されて AVI ファイルが作成されます。
  4. AVI から MP4 へは問題なく変換できたのですが MP4 から AVI への変換がうまく出来ない 場合があります。
    AVI は作成されるのですが、再生しようとするとエラーが表示されました。
    私のデジカメで撮影した AVI を MP4 に変換して、この MP4 を AVI に変換できました。(AVI → MP4 → AVI)
    MP4 の種類やサイズが原因しているのでしょうか? (^_^;)

[Previous Chapter ↑] AVI → MP4

超初心者のプログラム入門(C# Frame Work)