如何使用 AxWindowsMediaPlayer 库将视频旋转 90 度
How to rotate video in 90 degrees using AxWindowsMediaPlayer library
我需要在 C# 技术的 windows 媒体播放器应用程序中应用视频旋转 (0, 90, -90) 度。我正在使用 AxWindowsMediaPlayer
库来实现视频播放以及 Play
、Pos
、Stop
、Next
、Voliume
控件等属性.但我没有获得任何属性来将视频旋转 90 度或 -90 度。
如何在 windows 媒体播放器应用程序中实现视频旋转?有什么想法吗?
最后我可以使用 FFmpeg 库解决视频旋转(90 度)问题。下载最新版本的 FFmpeg zip for windows,解压缩并保留驱动器 C 上的 FFmpeg 库文件夹 [注意:任何驱动器或路径都可以被选中]。
定义一个函数,它接受一个名为 command
的 string
参数
/// <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.
我需要在 C# 技术的 windows 媒体播放器应用程序中应用视频旋转 (0, 90, -90) 度。我正在使用 AxWindowsMediaPlayer
库来实现视频播放以及 Play
、Pos
、Stop
、Next
、Voliume
控件等属性.但我没有获得任何属性来将视频旋转 90 度或 -90 度。
如何在 windows 媒体播放器应用程序中实现视频旋转?有什么想法吗?
最后我可以使用 FFmpeg 库解决视频旋转(90 度)问题。下载最新版本的 FFmpeg zip for windows,解压缩并保留驱动器 C 上的 FFmpeg 库文件夹 [注意:任何驱动器或路径都可以被选中]。
定义一个函数,它接受一个名为 command
string
参数
/// <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.