Как повернуть видео на 90 градусов с помощью библиотеки AxWindowsMediaPlayer - PullRequest
0 голосов
/ 06 марта 2019

Мне нужно применить угол поворота видео (0, 90, -90) в приложении Windows Media Player в технологии c #.Я использую библиотеку AxWindowsMediaPlayer для реализации воспроизведения видео вместе со свойствами Play, Pos, Stop, Next, Voliume и так далее.Но я не получаю никаких свойств, чтобы повернуть видео на 90 градусов или -90 градусов.

Как реализовать поворот видео в приложении Windows Media Player?Любая идея?

1 Ответ

0 голосов
/ 07 марта 2019

Наконец я смог разрешить поворот видео (на 90 градусов), используя библиотеку FFmpeg .Загрузите последнюю версию FFmpeg zip для Windows, извлеките и сохраните папку библиотеки FFmpeg на диске C [Примечание: можно выбрать любой диск или путь].

Определить функцию, которая принимает параметр string с именем command

/// <summary>
/// Execute the command and output the result
/// </summary>
private String Command(string command)
{
    int time_out = 6;
    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();

    psi.FileName = @"C:\ffmpeg\bin\ffmpeg.exe";

    psi.RedirectStandardInput = false;
    psi.RedirectStandardOutput = true;
    psi.UseShellExecute = false;
    //Do not display windows
    psi.CreateNoWindow = true;
    //Specify command line
    psi.Arguments = command;
    //Start-up
    Process p = Process.Start(psi);
    //Read output
    string results = p.StandardOutput.ReadToEnd();
    //WaitForExit needs to be after ReadToEnd
    //(To prevent blocking by parent process and child process)
    p.WaitForExit(time_out * 1000);  //Wait maximum specified milliseconds until process terminates
    if (!p.HasExited) p.Close();
    //Display output result
    return results;
}

Затем вызвать функцию, передавая cmdArgs, как это

string inputPath = @"C:\SampleVideo.mp4";
string outputFile = @"C:\SampleVideoOutput.mp4";

string cmdArgs = string.Empty;
cmdArgs = " -i \"" + inputPath + "\" -vf \"transpose=1\" \"" + outputFile + "\"";

Command(cmdArgs);

Простая команда командной строкиниже -

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

transpose = 1 для поворота на 90 градусов.

Ниже можно использовать параметр транспонирования:

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip

Use -vf "transpose=2,transpose=2" for 180 degrees.
...