public async Task <VideoFileModel> ConvertFromExistingVideo(ConvertVideoDTO video) { try { var videoFile = await GetVideo(video.VideoId); await UpdateVideoStatus(videoFile.Id, Status.Processing); string outFilename = $"{video.OutputFormat.ToString()}{videoFile.Filename.Substring(videoFile.Filename.LastIndexOf('.'))}"; string outputFile = Path.Combine(videoFile.FileDirectory, outFilename); _jobRunner.Enqueue(new FFmpegArguments() { OutputFile = outputFile, ParentVideoId = videoFile.Id, InputFile = Path.Combine(videoFile.FileDirectory, videoFile.Filename), OutputFormat = video.OutputFormat, Operation = OperationType.Conversion }); _jobRunner.JobFinished += c_JobFinished; return(_mapper.Map <VideoFileModel>(videoFile)); } catch (Exception ex) { Debug.WriteLine(ex.Message); throw new Exception("Internal server error"); } }
public async Task <ActionResult <VideoFileModel> > GenerateHLS([FromBody] ConvertVideoDTO videoDTO) { if (!ModelState.IsValid) { return(BadRequest("Invalid data model")); } var result = await _videoConverterService.GenerateHLS(videoDTO); return(Ok(result)); }
public async Task <ActionResult <VideoFileModel> > ConvertToOtherFormat([FromBody] ConvertVideoDTO videoDTO) { if (!ModelState.IsValid) { return(BadRequest("Invalid data model")); } var result = await _videoConverterService.ConvertFromExistingVideo(videoDTO); return(Ok(result)); }
public async Task <VideoFileModel> GenerateHLS(ConvertVideoDTO hlsDTO) { try { var videoFile = await GetVideo(hlsDTO.VideoId); await UpdateVideoStatus(videoFile.Id, Status.Processing); _jobRunner.Enqueue(new FFmpegArguments() { ParentVideoId = videoFile.Id, InputFile = Path.Combine(videoFile.FileDirectory, videoFile.Filename), OutputFormat = hlsDTO.OutputFormat, Operation = OperationType.HLS }); _jobRunner.JobFinished += c_JobFinished; return(_mapper.Map <VideoFileModel>(videoFile)); } catch (Exception ex) { Debug.WriteLine(ex.Message); throw new Exception("Internal server error"); } }