2025-08-12 00:17:37 -05:00
|
|
|
using StreamShorts.Library.Analysis;
|
|
|
|
|
|
2025-08-03 22:50:30 -05:00
|
|
|
namespace StreamShorts.Library.Media.Video;
|
|
|
|
|
|
2025-08-12 00:17:37 -05:00
|
|
|
/// <summary>
|
|
|
|
|
/// Represents a service that creates video shorts.
|
|
|
|
|
/// </summary>
|
2025-08-03 22:50:30 -05:00
|
|
|
public interface IShortsCreator
|
|
|
|
|
{
|
2025-08-12 00:17:37 -05:00
|
|
|
/// <summary>
|
|
|
|
|
/// Creates video shorts from the provided transcript analysis and video stream.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="analysis">The transcript analysis.</param>
|
|
|
|
|
/// <param name="video">The video stream.</param>
|
|
|
|
|
/// <param name="buffer">An optional buffer duration to include before the start time and after the end time of each short.</param>
|
|
|
|
|
/// <returns>An asynchronous enumerable of <see cref="ShortClip"/>.</returns>
|
|
|
|
|
/// <exception cref="ArgumentNullException">Thrown when <paramref name="analysis"/> is null.</exception>
|
|
|
|
|
/// <exception cref="ArgumentNullException">Thrown when <paramref name="video"/> is null.</exception>
|
|
|
|
|
public IAsyncEnumerable<ShortClip> CreateShortsAsync(TranscriptAnalysis analysis, Stream video, TimeSpan? buffer = null);
|
2025-08-03 22:50:30 -05:00
|
|
|
}
|