mirror of
https://github.com/rosenbjerg/FFMpegCore.git
synced 2025-01-18 04:26:44 +00:00
Add CropArgument
Add the option to crop the video to a given size.
This commit is contained in:
parent
c4232b7ca0
commit
72eddfca6d
2 changed files with 26 additions and 1 deletions
22
FFMpegCore/FFMpeg/Arguments/CropArgument.cs
Normal file
22
FFMpegCore/FFMpeg/Arguments/CropArgument.cs
Normal file
|
@ -0,0 +1,22 @@
|
|||
using System.Drawing;
|
||||
|
||||
namespace FFMpegCore.Arguments
|
||||
{
|
||||
public class CropArgument : IArgument
|
||||
{
|
||||
public readonly Size? Size;
|
||||
public readonly int Top;
|
||||
public readonly int Left;
|
||||
|
||||
public CropArgument(Size? size, int top, int left)
|
||||
{
|
||||
Size = size;
|
||||
Top = top;
|
||||
Left = left;
|
||||
}
|
||||
|
||||
public CropArgument(int width, int height, int top, int left) : this(new Size(width, height), top, left) { }
|
||||
|
||||
public string Text => Size == null ? string.Empty : $"-vf crop={Size.Value.Width}:{Size.Value.Height}:{Left}:{Top}";
|
||||
}
|
||||
}
|
|
@ -16,7 +16,10 @@ internal FFMpegArgumentOptions() { }
|
|||
public FFMpegArgumentOptions WithVariableBitrate(int vbr) => WithArgument(new VariableBitRateArgument(vbr));
|
||||
public FFMpegArgumentOptions Resize(int width, int height) => WithArgument(new SizeArgument(width, height));
|
||||
public FFMpegArgumentOptions Resize(Size? size) => WithArgument(new SizeArgument(size));
|
||||
|
||||
public FFMpegArgumentOptions Crop(Size? size, int left, int top) => WithArgument(new CropArgument(size, top, left));
|
||||
public FFMpegArgumentOptions Crop(int width, int height, int left, int top) => WithArgument(new CropArgument(new Size(width, height), top, left));
|
||||
public FFMpegArgumentOptions Crop(Size? size) => WithArgument(new CropArgument(size, 0, 0));
|
||||
public FFMpegArgumentOptions Crop(int width, int height) => WithArgument(new CropArgument(new Size(width, height), 0, 0));
|
||||
public FFMpegArgumentOptions WithBitStreamFilter(Channel channel, Filter filter) => WithArgument(new BitStreamFilterArgument(channel, filter));
|
||||
public FFMpegArgumentOptions WithConstantRateFactor(int crf) => WithArgument(new ConstantRateFactorArgument(crf));
|
||||
public FFMpegArgumentOptions CopyChannel(Channel channel = Channel.Both) => WithArgument(new CopyArgument(channel));
|
||||
|
|
Loading…
Reference in a new issue