我正在尝试使用 Upload Video API(此处为https://api-portal.videoindexer.ai/docs/services/Operations/operations/Upload-Video/console
)将上传到Azure Blob中的视频自动传递给Azure Video Indexer Services。我的问题是,如果我将video_url参数作为blob url + SAS访问令牌传递,则API返回错误
{ "ErrorType": "INVALID_INPUT", "Message": "Url content type 'application/xml' is not supported. Only audio and video files are supported. You can find the supported }
但是,如果我将同一视频上传到托管服务,该服务会为我提供直接指向视频文件的URL,然后使用该URL,则它可以正常工作。
API调用如下:
POST https://api.videoindexer.ai/trial/Accounts/{Account_ID}/Videos?name={Video_Name}&privacy=Private&videoUrl=https://{Azure_Blob_Video_URL}.mp4?{sas_token}&indexingPreset=Default&streamingPreset=Default&sendSuccessEmail=False&accessToken={access_token} HTTP/1.1
Host: api.videoindexer.ai
x-ms-client-request-id: 1012ac93-bbbb-cccc-aaaa-edf520fa7e8c
Ocp-Apim-Subscription-Key: {api_key}
请注意,如果我将blob url + SAS令牌粘贴到浏览器中,则视频可以正常播放,并且Chrome开发工具中的网络标签显示内容类型为video / mp4
那么如何使Blob URL起作用?
谢谢
答案 0 :(得分:1)
我认为您在此处进行的组合不正确。
https://{Azure_Blob_Video_URL}.mp4?{sas_token}
可能的是,将其合并后,它返回404和XML,表示未找到Blob。
请尝试对Blob URL进行编码,因为SAS字符串中的特殊符号可能是问题所在。
或将其设为URL中的最后一个变量。
POST https://api.videoindexer.ai/trial/Accounts/{Account_ID}/Videos?name={Video_Name}&privacy=Private&indexingPreset=Default&streamingPreset=Default&sendSuccessEmail=False&accessToken={access_token}&videoUrl=https://{Azure_Blob_Video_URL}.mp4?{sas_token}