Я пытаюсь использовать asp.net API 2.1 для перенаправления видеопотока.
Я ПОЛУЧИЛ URL-адрес с исходным видеопотоком, и мне нужно перенести его (ответ API) на видеоплеер, который может его получить и воспроизвести.
После исследования я нашел два варианта:
1. Основано на MemoryStream:
public async Task<FileStreamResult> Get(string SourceVideoURL)
{
HttpClient _client = new HttpClient();
byte[] b= await _client.GetByteArrayAsync(SourceVideoURL);
var stream = new MemoryStream(b);
return new FileStreamResult(stream, "video/mp4");
}
Требуется немного времени для загрузки, поскольку он, похоже, использует какой-то буфер.
2. Основано на GetStreamAsync:
public async Task<FileStreamResult> Get(string SourceVideoURL)
{
HttpClient _client = new HttpClient();
Stream stream = await _client.GetStreamAsync(SourceVideoURL);
return new FileStreamResult(stream, "video/mp4");
}
Похоже, что этот перенаправляет видео без буферизации.
Я довольно новичок в базовом API asp.net, я не уверен, какой предпочтительный подход, или, возможно, я не правильно использую доступные инструменты.
Для меня самое важное - самая быстрая потоковая передача (как можно меньше стартовой задержки).