-
[ASP.NET Core] 세상 간편해진 Video/Audio Streaming.NET/ASP.NET Core 2021. 4. 21. 22:36반응형
예전에 개선된 다운로드 예제를 작성하면서 확인하게된 EnableRangeProcessing 옵션을 테스트해보고자 코드 몇 줄 끄적였다. true로 설정한 채 mp4, mp3 같은 미디어 파일을 반환하면 자동으로 스트리밍 처리가 된다는 것이다.
테스트를 위해 mvc프로젝트를 생성하고 간단한 StreamingController 를 생성해보았다.
StreamingController.cs
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace StreamingExample.Controllers { [Route("api/[controller]")] [ApiController] public class StreamingController : ControllerBase { [HttpGet] public IActionResult Get() { return PhysicalFile("{물리적인 파일절대경로}", "video/mp4", enableRangeProcessing: true); // 스트리밍을 위해선 enableRangeProcessing 가 true로 설정되어야 한다. // BasicDownload의 FileStreamResult를 이용한 방법도 가능. HttpGet 속성의 template을 이용하거나, QueryString을 이용하여 파일명을 받아 사용하는 것도 가능함. } } }
index.cshtml
@{ ViewData["Title"] = "Home Page"; } <div class="text-center"> <h1 class="display-4">Welcome</h1> <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> </div> <video controls="controls"> <source src="/api/streaming" type="video/mp4" /> </video>
이게 끝이다.
ASP.NET에 비하면 정말 간단해졌다. enableRangeProcessing 옵션 하나만으로 버퍼분할같은 사전 구현 작업없이 간단하게 처리가 된다.
물론 실제 OTT 서비스를 이런식으로 만든다고 한다면 다니고 있는 직장도 간단하게 끝날 수 있다.
반응형'.NET > ASP.NET Core' 카테고리의 다른 글