2025-07-29 18:00:09 -05:00
|
|
|
namespace StreamShorts.Library.Media;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Represents a service for processing video files.
|
|
|
|
|
/// </summary>
|
|
|
|
|
internal interface IVideoService
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Extracts audio from a video stream and writes it to an audio stream.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="video">The input video stream.</param>
|
|
|
|
|
/// <param name="audio">The output audio stream.</param>
|
|
|
|
|
/// <returns>A task that represents the asynchronous operation. The task result indicates whether the extraction was successful.</returns>
|
|
|
|
|
Task<bool> ExtractAudioFromVideoAsync(Stream video, Stream audio);
|
2025-08-12 00:17:37 -05:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Extracts a clip from a video stream.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="video">The input video stream.</param>
|
|
|
|
|
/// <param name="start">The start time of the clip.</param>
|
|
|
|
|
/// <param name="end">The end time of the clip.</param>
|
|
|
|
|
/// <param name="buffer">The duration of the buffer to include before the start time and after the end time.</param>
|
|
|
|
|
/// <returns>A task that represents the asynchronous operation. The task result contains the extracted clip as a stream.</returns>
|
|
|
|
|
Task<Stream> ExtractClipFromVideoAsync(Stream video, TimeSpan start, TimeSpan end, TimeSpan? buffer = null);
|
2025-07-29 18:00:09 -05:00
|
|
|
}
|