当前位置: 首页 > 知识库问答 >
问题:

Azure编码作业失败

钱澄邈
2023-03-14

我正在通过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服务器上,但无法播放。

谁能给我指个方向吗

共有2个答案

严阳成
2023-03-14

似乎你的视频资源中缺少了一些元数据。以下代码可以用来创建资产,并将文件作为特定资产的资产文件上传。然后在视频资源上运行编码预设。

https://msdn.microsoft.com/en-us/library/azure/jj129584.aspx

干杯,严明飞

卫宏硕
2023-03-14

以下主题介绍了使用REST创建资产并将文件上传到Blob时需要采取的步骤(可以使用任何方法上载文件)。

一般步骤如下:

>

  • 创建一个资产(生成blob容器)。
  • 获取SAS网址
  • 创建一个资产文件(与物理文件同名,例如Video.mp4)。
  • 将物理文件(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下游作业的任何上游作业失败或不稳定,那么阻止或失败的最佳方法是什么? 目前,我已经勾选了“当上游项目正在构建时阻止构建”选项,并且运行良好,因为我的下游作业正在等待所有上游作业完成构建。但是,如果任何上游失败或不稳定,我不想构建作业。 谢啦