• Documentation
  • Api
Show / Hide Table of Contents
  • System
    • TimeExtensions
  • Xabe.FFmpeg
    • AudioCodec
    • AudioStream
    • BitstreamFilter
    • Conversion
    • ConversionPreset
    • ConversionQueue
    • ConversionQueue.ConversionQueueEventHandler
    • FFmpeg
    • Flag
    • Format
    • HardwareAccelerator
    • Hash
    • IAudioStream
    • IConversion
    • IConversionResult
    • IFilterConfiguration
    • IInputBuilder
    • IMediaInfo
    • InputBuilder
    • IProbe
    • IStream
    • ISubtitleStream
    • IVideoStream
    • MediaInfo
    • ParameterPosition
    • PixelFormat
    • Position
    • Probe
    • RotateDegrees
    • StreamType
    • SubtitleStream
    • VideoCodec
    • VideoSize
    • VideoStream
  • Xabe.FFmpeg.Downloader
    • FFmpegDownloader
    • FFmpegVersion
    • IFFMpegDownloaderBase
  • Xabe.FFmpeg.Events
    • ConversionProgressEventArgs
    • ConversionProgressEventHandler
  • Xabe.FFmpeg.Exceptions
    • ConversionException
    • FFmpegNoSuitableOutputFormatFoundException
    • FFmpegNotFoundException
    • HardwareAcceleratorNotFoundException
    • InvalidBitstreamFilterException
    • InvalidInputException
    • UnknownDecoderException

Class Conversion

Inheritance
System.Object
Conversion
Implements
IConversion
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Xabe.FFmpeg
Assembly: Xabe.FFmpeg.dll
Syntax
public class Conversion : IConversion

Properties

FFmpegProcessId

Declaration
public int? FFmpegProcessId { get; }
Property Value
Type Description
System.Nullable<System.Int32>

OutputFilePath

Declaration
public string OutputFilePath { get; }
Property Value
Type Description
System.String

Methods

AddAudio(String, String, String)

Add audio stream to video file

Declaration
public static IConversion AddAudio(string videoPath, string audioPath, string outputPath)
Parameters
Type Name Description
System.String videoPath

Video

System.String audioPath

Audio

System.String outputPath

Output file

Returns
Type Description
IConversion

Conversion result

AddParameter(String, ParameterPosition)

Declaration
public IConversion AddParameter(string parameter, ParameterPosition parameterPosition = ParameterPosition.PostInput)
Parameters
Type Name Description
System.String parameter
ParameterPosition parameterPosition
Returns
Type Description
IConversion

AddStream(IEnumerable<IStream>)

Declaration
public IConversion AddStream(IEnumerable<IStream> streams)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<IStream> streams
Returns
Type Description
IConversion

AddStream<T>(T[])

Declaration
public IConversion AddStream<T>(params T[] streams)

    where T : IStream
Parameters
Type Name Description
T[] streams
Returns
Type Description
IConversion
Type Parameters
Name Description
T

AddSubtitle(String, String, String, String)

Add subtitle to file. It will be added as new stream so if you want to burn subtitles into video you should use SetSubtitles method.

Declaration
public static IConversion AddSubtitle(string inputPath, string outputPath, string subtitlePath, string language = null)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output path

System.String subtitlePath

Path to subtitle file in .srt format

System.String language

Language code in ISO 639. Example: "eng", "pol", "pl", "de", "ger"

Returns
Type Description
IConversion

Conversion result

AddSubtitles(String, String, String)

Add subtitles to video stream

Declaration
public static IConversion AddSubtitles(string inputPath, string outputPath, string subtitlesPath)
Parameters
Type Name Description
System.String inputPath

Video

System.String outputPath

Output file

System.String subtitlesPath

Subtitles

Returns
Type Description
IConversion

Conversion result

Build()

Declaration
public string Build()
Returns
Type Description
System.String

BuildVideoFromImages(IEnumerable<String>)

Declaration
public IConversion BuildVideoFromImages(IEnumerable<string> imageFiles)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<System.String> imageFiles
Returns
Type Description
IConversion

BuildVideoFromImages(Int32, Func<String, String>)

Declaration
public IConversion BuildVideoFromImages(int startNumber, Func<string, string> buildInputFileName)
Parameters
Type Name Description
System.Int32 startNumber
System.Func<System.String, System.String> buildInputFileName
Returns
Type Description
IConversion

ChangeSize(String, String, Int32, Int32)

Change video size

Declaration
public static IConversion ChangeSize(string inputPath, string outputPath, int width, int height)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output path

System.Int32 width

Expected width

System.Int32 height

Expected height

Returns
Type Description
IConversion

Conversion result

ChangeSize(String, String, VideoSize)

Change video size

Declaration
public static IConversion ChangeSize(string inputPath, string outputPath, VideoSize size)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output path

VideoSize size

Expected size

Returns
Type Description
IConversion

Conversion result

Clear()

Declaration
public void Clear()

Concatenate(String, String[])

Concat multiple inputVideos.

Declaration
public static IConversion Concatenate(string output, params string[] inputVideos)
Parameters
Type Name Description
System.String output

Concatenated inputVideos

System.String[] inputVideos

Videos to add

Returns
Type Description
IConversion

Conversion result

Convert(String, String)

Convert one file to another with destination format.

Declaration
public static IConversion Convert(string inputFilePath, string outputFilePath)
Parameters
Type Name Description
System.String inputFilePath

Path to file

System.String outputFilePath

Path to file

Returns
Type Description
IConversion

IConversion object

ConvertWithHardware(String, String, HardwareAccelerator, VideoCodec, VideoCodec, Int32)

Convert one file to another with destination format using hardware acceleration (if possible). Using cuvid. Works only on Windows/Linux with NVidia GPU.

Declaration
public static IConversion ConvertWithHardware(string inputFilePath, string outputFilePath, HardwareAccelerator hardwareAccelerator, VideoCodec decoder, VideoCodec encoder, int device = 0)
Parameters
Type Name Description
System.String inputFilePath

Path to file

System.String outputFilePath

Path to file

HardwareAccelerator hardwareAccelerator

Hardware accelerator. List of all acceclerators available for your system - "ffmpeg -hwaccels"

VideoCodec decoder

Codec using to decoding input video (e.g. h264_cuvid)

VideoCodec encoder

Codec using to encode output video (e.g. h264_nvenc)

System.Int32 device

Number of device (0 = default video card) if more than one video card.

Returns
Type Description
IConversion

IConversion object

ExtractAudio(String, String)

Extract audio from file

Declaration
public static IConversion ExtractAudio(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output video stream

Returns
Type Description
IConversion

Conversion result

ExtractEveryNthFrame(Int32, Func<String, String>)

Declaration
public IConversion ExtractEveryNthFrame(int frameNo, Func<string, string> buildOutputFileName)
Parameters
Type Name Description
System.Int32 frameNo
System.Func<System.String, System.String> buildOutputFileName
Returns
Type Description
IConversion

ExtractNthFrame(Int32, Func<String, String>)

Declaration
public IConversion ExtractNthFrame(int frameNo, Func<string, string> buildOutputFileName)
Parameters
Type Name Description
System.Int32 frameNo
System.Func<System.String, System.String> buildOutputFileName
Returns
Type Description
IConversion

ExtractVideo(String, String)

Extract video from file

Declaration
public static IConversion ExtractVideo(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output audio stream

Returns
Type Description
IConversion

Conversion result

GetScreenCapture(Double)

Declaration
public IConversion GetScreenCapture(double frameRate)
Parameters
Type Name Description
System.Double frameRate
Returns
Type Description
IConversion

New()

Get new instance of Conversion

Declaration
public static IConversion New()
Returns
Type Description
IConversion

IConversion object

SaveM3U8Stream(Uri, String, Nullable<TimeSpan>)

Save M3U8 stream

Declaration
public static IConversion SaveM3U8Stream(Uri uri, string outputPath, TimeSpan? duration = default(TimeSpan? ))
Parameters
Type Name Description
System.Uri uri

Uri to stream

System.String outputPath

Output path

System.Nullable<System.TimeSpan> duration

Duration of stream

Returns
Type Description
IConversion

Conversion result

SetAudioBitrate(Int64)

Declaration
public IConversion SetAudioBitrate(long bitrate)
Parameters
Type Name Description
System.Int64 bitrate
Returns
Type Description
IConversion

SetFrameRate(Double)

Declaration
public IConversion SetFrameRate(double frameRate)
Parameters
Type Name Description
System.Double frameRate
Returns
Type Description
IConversion

SetHashFormat(String)

Declaration
public IConversion SetHashFormat(string hashFormat)
Parameters
Type Name Description
System.String hashFormat
Returns
Type Description
IConversion

SetHashFormat(Hash)

Declaration
public IConversion SetHashFormat(Hash hashFormat)
Parameters
Type Name Description
Hash hashFormat
Returns
Type Description
IConversion

SetInputFormat(String)

Declaration
public IConversion SetInputFormat(string format)
Parameters
Type Name Description
System.String format
Returns
Type Description
IConversion

SetInputFormat(Format)

Declaration
public IConversion SetInputFormat(Format inputFormat)
Parameters
Type Name Description
Format inputFormat
Returns
Type Description
IConversion

SetInputFrameRate(Double)

Declaration
public IConversion SetInputFrameRate(double frameRate)
Parameters
Type Name Description
System.Double frameRate
Returns
Type Description
IConversion

SetInputTime(Nullable<TimeSpan>)

Declaration
public IConversion SetInputTime(TimeSpan? time)
Parameters
Type Name Description
System.Nullable<System.TimeSpan> time
Returns
Type Description
IConversion

SetOutput(String)

Declaration
public IConversion SetOutput(string outputPath)
Parameters
Type Name Description
System.String outputPath
Returns
Type Description
IConversion

SetOutputFormat(String)

Declaration
public IConversion SetOutputFormat(string format)
Parameters
Type Name Description
System.String format
Returns
Type Description
IConversion

SetOutputFormat(Format)

Declaration
public IConversion SetOutputFormat(Format outputFormat)
Parameters
Type Name Description
Format outputFormat
Returns
Type Description
IConversion

SetOutputTime(Nullable<TimeSpan>)

Declaration
public IConversion SetOutputTime(TimeSpan? time)
Parameters
Type Name Description
System.Nullable<System.TimeSpan> time
Returns
Type Description
IConversion

SetOverwriteOutput(Boolean)

Declaration
public IConversion SetOverwriteOutput(bool overwrite)
Parameters
Type Name Description
System.Boolean overwrite
Returns
Type Description
IConversion

SetPixelFormat(String)

Declaration
public IConversion SetPixelFormat(string pixelFormat)
Parameters
Type Name Description
System.String pixelFormat
Returns
Type Description
IConversion

SetPixelFormat(PixelFormat)

Declaration
public IConversion SetPixelFormat(PixelFormat pixelFormat)
Parameters
Type Name Description
PixelFormat pixelFormat
Returns
Type Description
IConversion

SetPreset(ConversionPreset)

Declaration
public IConversion SetPreset(ConversionPreset preset)
Parameters
Type Name Description
ConversionPreset preset
Returns
Type Description
IConversion

SetPriority(Nullable<ProcessPriorityClass>)

Declaration
public IConversion SetPriority(ProcessPriorityClass? priority)
Parameters
Type Name Description
System.Nullable<System.Diagnostics.ProcessPriorityClass> priority
Returns
Type Description
IConversion

SetSeek(Nullable<TimeSpan>)

Declaration
public IConversion SetSeek(TimeSpan? seek)
Parameters
Type Name Description
System.Nullable<System.TimeSpan> seek
Returns
Type Description
IConversion

SetVideoBitrate(Int64)

Declaration
public IConversion SetVideoBitrate(long bitrate)
Parameters
Type Name Description
System.Int64 bitrate
Returns
Type Description
IConversion

SetWatermark(String, String, String, Position)

Melt watermark into video

Declaration
public static IConversion SetWatermark(string inputPath, string outputPath, string inputImage, Position position)
Parameters
Type Name Description
System.String inputPath

Input video path

System.String outputPath

Output file

System.String inputImage

Watermark

Position position

Position of watermark

Returns
Type Description
IConversion

Conversion result

Snapshot(String, String, TimeSpan)

Saves snapshot of video

Declaration
public static IConversion Snapshot(string inputPath, string outputPath, TimeSpan captureTime)
Parameters
Type Name Description
System.String inputPath

Video

System.String outputPath

Output file

System.TimeSpan captureTime

TimeSpan of snapshot

Returns
Type Description
IConversion

Conversion result

Split(String, String, TimeSpan, TimeSpan)

Get part of video

Declaration
public static IConversion Split(string inputPath, string outputPath, TimeSpan startTime, TimeSpan duration)
Parameters
Type Name Description
System.String inputPath

Video

System.String outputPath

Output file

System.TimeSpan startTime

Start point

System.TimeSpan duration

Duration of new video

Returns
Type Description
IConversion

Conversion result

Start()

Declaration
public Task<IConversionResult> Start()
Returns
Type Description
System.Threading.Tasks.Task<IConversionResult>

Start(String)

Declaration
public Task<IConversionResult> Start(string parameters)
Parameters
Type Name Description
System.String parameters
Returns
Type Description
System.Threading.Tasks.Task<IConversionResult>

Start(String, CancellationToken)

Declaration
public Task<IConversionResult> Start(string parameters, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String parameters
System.Threading.CancellationToken cancellationToken
Returns
Type Description
System.Threading.Tasks.Task<IConversionResult>

Start(CancellationToken)

Declaration
public Task<IConversionResult> Start(CancellationToken cancellationToken)
Parameters
Type Name Description
System.Threading.CancellationToken cancellationToken
Returns
Type Description
System.Threading.Tasks.Task<IConversionResult>

ToGif(String, String, Int32, Int32)

Convert image video stream to gif

Declaration
public static IConversion ToGif(string inputPath, string outputPath, int loop, int delay = 0)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Output path

System.Int32 loop

Number of repeats

System.Int32 delay

Delay between repeats (in seconds)

Returns
Type Description
IConversion

Conversion result

ToMp4(String, String)

Convert file to MP4

Declaration
public static IConversion ToMp4(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Destination file

Returns
Type Description
IConversion

Conversion result

ToOgv(String, String)

Convert file to OGV

Declaration
public static IConversion ToOgv(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Destination file

Returns
Type Description
IConversion

Conversion result

ToTs(String, String)

Convert file to TS

Declaration
public static IConversion ToTs(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Destination file

Returns
Type Description
IConversion

Conversion result

ToWebM(String, String)

Convert file to WebM

Declaration
public static Task<IConversion> ToWebM(string inputPath, string outputPath)
Parameters
Type Name Description
System.String inputPath

Input path

System.String outputPath

Destination file

Returns
Type Description
System.Threading.Tasks.Task<IConversion>

Conversion result

UseHardwareAcceleration(String, String, String, Int32)

Declaration
public IConversion UseHardwareAcceleration(string hardwareAccelerator, string decoder, string encoder, int device = 0)
Parameters
Type Name Description
System.String hardwareAccelerator
System.String decoder
System.String encoder
System.Int32 device
Returns
Type Description
IConversion

UseHardwareAcceleration(HardwareAccelerator, VideoCodec, VideoCodec, Int32)

Declaration
public IConversion UseHardwareAcceleration(HardwareAccelerator hardwareAccelerator, VideoCodec decoder, VideoCodec encoder, int device = 0)
Parameters
Type Name Description
HardwareAccelerator hardwareAccelerator
VideoCodec decoder
VideoCodec encoder
System.Int32 device
Returns
Type Description
IConversion

UseMultiThread(Boolean)

Declaration
public IConversion UseMultiThread(bool multiThread)
Parameters
Type Name Description
System.Boolean multiThread
Returns
Type Description
IConversion

UseMultiThread(Int32)

Declaration
public IConversion UseMultiThread(int threadsCount)
Parameters
Type Name Description
System.Int32 threadsCount
Returns
Type Description
IConversion

UseShortest(Boolean)

Declaration
public IConversion UseShortest(bool useShortest)
Parameters
Type Name Description
System.Boolean useShortest
Returns
Type Description
IConversion

Events

OnDataReceived

Declaration
public event DataReceivedEventHandler OnDataReceived
Event Type
Type Description
System.Diagnostics.DataReceivedEventHandler

OnProgress

Declaration
public event ConversionProgressEventHandler OnProgress
Event Type
Type Description
ConversionProgressEventHandler

Implements

IConversion
Back to top Xabe