我正在通过rest上传视频到我们的Azure媒体服务器,但编码工作失败,以下例外:
null
ErrorProcessingTask : Azure Media Encoder could not load the preset Preset.xml on source tom2.mp4:File type isn't supported.
我可以看到它声明不支持文件类型,但是如果我手动上传它就没有问题了。
这就是我发布视频的方式
var uploadLocatorId = asset["Id"];
var uploadurl = asset["BaseUri"].ToString() + "/tom2.mp4" + asset["ContentAccessComponent"].ToString();
var formcontent = new MultipartFormDataContent();
FileStream stream = File.OpenRead(@"C:\VideoFiles\tom2.mp4");
byte[] fileBytes = new byte[stream.Length];
Int32 blobLength = fileBytes.Length;
stream.Read(fileBytes, 0, fileBytes.Length);
// stream.Close();
var requestContent = new MultipartFormDataContent();
// here you can specify boundary if you need---^
var mp4ieContent = new ByteArrayContent(fileBytes);
mp4ieContent.Headers.ContentType =
MediaTypeHeaderValue.Parse("application/octet-stream");
mp4ieContent.Headers.ContentLength = blobLength;
var memory = new MemoryStream(fileBytes);
var streamcontent = new StreamContent(memory);
formcontent.Add(streamcontent, "tom2", "tom2.mp4");
// formcontent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
var date = DateTime.UtcNow.ToString("R", System.Globalization.CultureInfo.InvariantCulture);
var container = AssetID.ToString();
container = container.Replace("nb:cid:UUID:", "asset-");
client = new HttpClient();
client.DefaultRequestHeaders.Add("x-ms-version", "2014-02-14");
client.DefaultRequestHeaders.Add("x-ms-date", date);
client.DefaultRequestHeaders.Add("x-ms-blob-type", "BlockBlob");
client.DefaultRequestHeaders.Accept.Add(type);
result = await client.PutAsync(uploadurl, formcontent);
该文件存在于Azure服务器上,但无法播放。
谁能给我指个方向吗
似乎你的视频资源中缺少了一些元数据。以下代码可以用来创建资产,并将文件作为特定资产的资产文件上传。然后在视频资源上运行编码预设。
https://msdn.microsoft.com/en-us/library/azure/jj129584.aspx
干杯,严明飞
以下主题介绍了使用REST创建资产并将文件上传到Blob时需要采取的步骤(可以使用任何方法上载文件)。
一般步骤如下:
>
将物理文件(Video.mp4)上传到SAS url。有关上载文件的详细信息,请参阅直接从浏览器将文件上传到Azure Blob存储
根据需要使用大小和其他信息更新资产文件。
或者,可以在上传blob后创建资产文件。然后枚举容器并创建相应的资产文件。
我正试图上传一个视频,并通过azure rest服务对其进行编码。我现在已经达到了编码视频的步骤,但我有困难的要求。 有人能发现错误吗。 谢谢你的帮助
我正在尝试在Azure Databricks上实现DevOps。 我已经完成了datricks笔记本和dbfs文件的devops实现。 我确实有许多数据砖作业根据计划在我的集群上运行。其中一些作业指向笔记本文件,少数作业指向 dbfs 位置中的 jar 文件。 有没有办法在azure databricks作业上实现devops流程,以便DEV中任何作业的任何更改都将调用构建管道,并在PROD da
我想在阿兹卡班经营蜂巢工作
我目前正在尝试为一个项目设置Elasticsearch。我已经安装了,还安装了Java,即。 但是当我尝试使用以下命令启动Elasticsearch时 我得到以下错误 loaded:loaded(/usr/lib/systemd/system/elasticsearch.service;disabled;vend 活动:自世界协调时2019-11-01 06:09:54开始失败(结果:退出-代码)
我得到了“ExecutorLostFailure(Executor1 lost)”。 我已经尝试了大部分的Spark调优配置。我已经减少到一个执行人失去,因为最初我得到了像6个执行人失败。 以下是我的配置(我的spark-submit):
如果Jenkins下游作业的任何上游作业失败或不稳定,那么阻止或失败的最佳方法是什么? 目前,我已经勾选了“当上游项目正在构建时阻止构建”选项,并且运行良好,因为我的下游作业正在等待所有上游作业完成构建。但是,如果任何上游失败或不稳定,我不想构建作业。 谢啦