public JsonResult Clip(string clipData) { try { JObject clip = JObject.Parse(clipData); string clipName = clip["name"].ToString(); string clipType = clip["output"]["type"].ToString(); string authToken = HomeController.GetAuthToken(Request, Response); using (MediaClient mediaClient = new MediaClient(authToken)) { switch (clipType) { case "filter": string assetId = clip["inputsIds"][0]["id"].ToString(); JToken timeRange = clip["output"]["filter"]["PresentationTimeRange"]; long timescale = (long)timeRange["Timescale"]; long startTimestamp = (long)timeRange["StartTimestamp"]; long endTimestamp = (long)timeRange["EndTimestamp"]; mediaClient.CreateFilter(assetId, clipName, timescale, startTimestamp, endTimestamp); break; case "rendered": break; } } return(Json(true)); } catch (ApiErrorException ex) { return(new JsonResult(ex.Response.Content) { StatusCode = (int)ex.Response.StatusCode }); } //MediaJobInput[] jobInputs = GetJobInputs(clip); //if (jobInputs[0].AssetFilter) //{ // string filterName = clip["name"].ToString(); // string assetId = jobInputs[0].AssetId; // //clipOutput = MediaClient.CreateFilter() //} //else //{ // MediaJobTask jobTask = new MediaJobTask() // { // MediaProcessor = MediaProcessor.EncoderStandard, // ProcessorConfig = clip["output"]["job"].ToString() // }; // MediaJob mediaJob = new MediaJob() // { // Name = clip["name"].ToString(), // NodeType = MediaJobNodeType.Premium, // Tasks = new MediaJobTask[] { jobTask } // }; // string directoryId = homeController.GetDirectoryId(this.Request); // mediaJob = MediaClient.GetJob(authToken, mediaClient, mediaJob, jobInputs.ToArray()); // clipOutput = Workflow.SubmitJob(directoryId, authToken, mediaClient, mediaJob, jobInputs.ToArray()); //} }
public JsonResult clip(int clipMode, string clipName, string sourceUrl, int markIn, int markOut) { string authToken = homeController.GetAuthToken(this.Request, this.Response); MediaClient mediaClient = new MediaClient(authToken); if (string.IsNullOrEmpty(clipName)) { clipName = Guid.NewGuid().ToString(); } object result; if (clipMode == Constants.Media.RenderedClipMode) { result = Workflow.SubmitJob(mediaClient, sourceUrl); } else { result = mediaClient.CreateFilter(sourceUrl, clipName, markIn, markOut); } return(Json(result)); }