如何使用AxWindowsMediaPlayer库将视频旋转90度

时间:2019-03-06 05:12:15

标签: c# .net winforms windows-media-player

我需要在c#技术的Windows Media Player应用程序中应用视频旋转(0、90,-90)度。我正在使用AxWindowsMediaPlayer库来实现视频播放以及属性PlayPosStopNextVoliume控件等。但是我没有任何属性可以将视频旋转90度或-90度。

如何在Windows Media Player应用程序中实现视频旋转?有想法吗?

1 个答案:

答案 0 :(得分:0)

最后,我可以使用 FFmpeg 库解决视频旋转(90度旋转)的问题。下载用于Windows的 FFmpeg zip的最新版本,将 FFmpeg 库文件夹提取并保存在驱动器C中[NB:可以选择任何驱动器或路径]。

定义一个使用名为string的{​​{1}}参数的函数

command

然后调用像这样传递cmdArgs的函数

/// <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;
}

下面是一个简单的命令行命令-

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

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

Command(cmdArgs);
对于90度旋转,

转置= 1。

可以使用以下转置参数:

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