mirror of
https://github.com/rosenbjerg/FFMpegCore.git
synced 2025-12-15 18:45:44 +00:00
41 lines
1 KiB
C#
41 lines
1 KiB
C#
namespace FFMpegCore.Arguments;
|
|
|
|
public class MetaDataArgument : IInputArgument, IDynamicArgument
|
|
{
|
|
private readonly string _metaDataContent;
|
|
private readonly string _tempFileName = Path.Combine(GlobalFFOptions.Current.TemporaryFilesFolder, $"metadata_{Guid.NewGuid()}.txt");
|
|
|
|
public MetaDataArgument(string metaDataContent)
|
|
{
|
|
_metaDataContent = metaDataContent;
|
|
}
|
|
|
|
public string GetText(IEnumerable<IArgument>? arguments)
|
|
{
|
|
arguments ??= Enumerable.Empty<IArgument>();
|
|
|
|
var index = arguments
|
|
.TakeWhile(x => x != this)
|
|
.OfType<IInputArgument>()
|
|
.Count();
|
|
|
|
return $"-i \"{_tempFileName}\" -map_metadata {index}";
|
|
}
|
|
|
|
public string Text => GetText(null);
|
|
|
|
public Task During(CancellationToken cancellationToken = default)
|
|
{
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public void Pre()
|
|
{
|
|
File.WriteAllText(_tempFileName, _metaDataContent);
|
|
}
|
|
|
|
public void Post()
|
|
{
|
|
File.Delete(_tempFileName);
|
|
}
|
|
}
|