mirror of
https://github.com/rosenbjerg/FFMpegCore.git
synced 2025-01-18 12:36:44 +00:00
Added log levels
This commit is contained in:
parent
7f72625eac
commit
6e4e8fbba1
3 changed files with 55 additions and 3 deletions
15
FFMpegCore/FFMpeg/Enums/FFMpegLogLevel.cs
Normal file
15
FFMpegCore/FFMpeg/Enums/FFMpegLogLevel.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
namespace FFMpegCore.Enums
|
||||
{
|
||||
public enum FFMpegLogLevel
|
||||
{
|
||||
Quiet = 0,
|
||||
Panic = 1,
|
||||
Fatal = 2,
|
||||
Error = 3,
|
||||
Warning = 4,
|
||||
Info = 5,
|
||||
Verbose = 6,
|
||||
Debug = 7,
|
||||
Trace = 8
|
||||
}
|
||||
}
|
|
@ -21,6 +21,7 @@ public class FFMpegArgumentProcessor
|
|||
private Action<string>? _onOutput;
|
||||
private Action<string>? _onError;
|
||||
private TimeSpan? _totalTimespan;
|
||||
private FFMpegLogLevel? _logLevel;
|
||||
|
||||
internal FFMpegArgumentProcessor(FFMpegArguments ffMpegArguments)
|
||||
{
|
||||
|
@ -83,12 +84,23 @@ public FFMpegArgumentProcessor Configure(Action<FFOptions> configureOptions)
|
|||
_configurations.Add(configureOptions);
|
||||
return this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the log level of this process. Overides the <see cref="FFMpegLogLevel"/>
|
||||
/// that is set in the <see cref="FFOptions"/> for this specific process.
|
||||
/// </summary>
|
||||
/// <param name="logLevel">The log level of the ffmpeg execution.</param>
|
||||
public FFMpegArgumentProcessor WithLogLevel(FFMpegLogLevel logLevel)
|
||||
{
|
||||
_logLevel = logLevel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public bool ProcessSynchronously(bool throwOnError = true, FFOptions? ffMpegOptions = null)
|
||||
{
|
||||
var options = GetConfiguredOptions(ffMpegOptions);
|
||||
var processArguments = PrepareProcessArguments(options, out var cancellationTokenSource);
|
||||
|
||||
|
||||
IProcessResult? processResult = null;
|
||||
try
|
||||
{
|
||||
|
@ -193,10 +205,25 @@ private ProcessArguments PrepareProcessArguments(FFOptions ffOptions,
|
|||
{
|
||||
FFMpegHelper.RootExceptionCheck();
|
||||
FFMpegHelper.VerifyFFMpegExists(ffOptions);
|
||||
|
||||
string? arguments = _ffMpegArguments.Text;
|
||||
|
||||
//If local loglevel is null, set the global.
|
||||
if (_logLevel == null)
|
||||
_logLevel = ffOptions.LogLevel;
|
||||
|
||||
//If neither local nor global loglevel is null, set the argument.
|
||||
if (_logLevel != null)
|
||||
{
|
||||
string normalizedLogLevel = _logLevel.ToString()
|
||||
.ToLower();
|
||||
arguments += $" -v {normalizedLogLevel}";
|
||||
}
|
||||
|
||||
var startInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = GlobalFFOptions.GetFFMpegBinaryPath(ffOptions),
|
||||
Arguments = _ffMpegArguments.Text,
|
||||
Arguments = arguments,
|
||||
StandardOutputEncoding = ffOptions.Encoding,
|
||||
StandardErrorEncoding = ffOptions.Encoding,
|
||||
WorkingDirectory = ffOptions.WorkingDirectory
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using FFMpegCore.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
@ -27,6 +28,15 @@ public class FFOptions : ICloneable
|
|||
/// </summary>
|
||||
public Encoding Encoding { get; set; } = Encoding.Default;
|
||||
|
||||
/// <summary>
|
||||
/// The log level to use when calling of the ffmpeg executable.
|
||||
/// <para>
|
||||
/// This option can be overridden before an execution of a Process command
|
||||
/// to set the log level for that command.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public FFMpegLogLevel? LogLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in a new issue