1

HandbrakeCLI をコンバーターとして使用して、ビデオ ファイルをバッチ変換するプログラムの作成に取り組んでいます。ほとんどの設定が完了し、実際にファイルを Handbrake に渡す作業を行っています。HandbrakeCLI の場所で新しいプロセスを作成し、引数を渡します。また、同じシェルで実行されるようにします。それはスピンアップし、変換を開始し、3 フレームほどになると自滅します。Windows 8 64 ビットで Visual Studio 12 を使用しています。これが私のコードです:

static void EncodeVideos()
    {
        var continueConverting = true;

        while (continueConverting)
        {
            var converted = 0;
            if (settings.Optimize == true)
            {
                videos = videos.OrderBy(x => x.InputSize).ToList();
            }

            foreach (var v in videos)
            {
                if (!v.AlreadyConverted())
                {
                    v.CreateOutputPath();
                    var input = String.Format("-i \"{0}\" ", v.InputPath);
                    var output = String.Format("-o \"{0}\" ", v.OutputPath);
                    var preset = String.Format("-Z {0}", settings.Preset);
                    var convertString = String.Format(" {0} {1} {2}", input, output, preset);
                    //Converting is not working correctly yet.
                    var p = new Process();
                    p.StartInfo = new ProcessStartInfo(settings.HandBrakeLocation, convertString)
                    {
                        UseShellExecute = false,
                    };
                    p.Start();
                    p.WaitForExit();
                    converted++;
                }
            }

            if (settings.Loop == true)
            {
                if (converted == 0)
                {
                    continueConverting = false;
                }
            }
            else
            {
                continueConverting = false;
            }
        }
    }

コードのコンテキストがさらに必要な場合は、すべてを github に置きました。Github で見つけることができます

編集:コードを修正

4

1 に答える 1

1
if (settings.Loop == true)
            {
                if (converted == 0)
                {
                    continueConverting = false;
                }
                continueConverting = false;
            }
            else
            {
                continueConverting = false;
            }

あなたは本当に変換を続けたくないのだと思います!

これは最初から間違っているようです。

于 2012-06-11T12:45:39.107 に答える