bitmovin-api-sdk-examples
bitmovin-api-sdk-examples copied to clipboard
Error "Encoding Output validation failed!!
I am running the MultiCodecEncoding
sample from the solution and changed the Output to use an Azure Storage Account.
All Encoding Jobs are failing with the error "Encoding Output validation failed!".
Some additional information:
- The Encoding process seems to have created the corresponding
video
andaudio
files - The Storage Account has been configured to be publicly accessible
How can I get more/additional information about what this error means?
Response Body with error:
{
"requestId":"33311c97-6e05-49f3-ac07-c5765f43e7b8",
"status":"SUCCESS",
"data":{
"result":{
"id":"0a704c6f-8e5b-152c-818e-663093696753",
"createdAt":"2024-03-22T12:44:03Z",
"queuedAt":"2024-03-22T12:44:13Z",
"runningAt":"2024-03-22T12:44:18Z",
"finishedAt":"2024-03-22T12:45:50Z",
"errorAt":"2024-03-22T12:45:50Z",
"eta":0.0,
"progress":90,
"status":"ERROR",
"messages":[
{
"id":"0a700377-8e5b-15c7-818e-663236266778",
"type":"ERROR",
"date":"2024-03-22T12:45:50Z",
"text":"Encoding has failed."
},
{
"id":"0a7033b8-8e5b-149f-818e-6630d1626ae3",
"type":"INFO",
"date":"2024-03-22T12:44:18Z",
"text":"Download of input file in progress."
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b05",
"type":"INFO",
"date":"2024-03-22T12:44:19Z",
"text":"Analyzing input in progress."
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b04",
"type":"INFO",
"date":"2024-03-22T12:44:19Z",
"text":"Download of input file finished"
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b02",
"type":"INFO",
"date":"2024-03-22T12:44:20Z",
"text":"Encoding in progress."
},
{
"id":"0a700377-8e5b-15c7-818e-6632355f6777",
"type":"ERROR",
"date":"2024-03-22T12:45:50Z",
"text":"Encoding Output validation failed!"
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b03",
"type":"INFO",
"date":"2024-03-22T12:44:20Z",
"text":"Analyzing input finished."
}
],
"subtasks":[
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b09",
"name":"Input file download",
"runningAt":"2024-03-22T12:44:18Z",
"updatedAt":"2024-03-22T12:44:19Z",
"finishedAt":"2024-03-22T12:44:19Z",
"progress":100,
"status":"FINISHED",
"metadata":[
{
"date":"2024-03-22T12:44:19Z",
"data":{
"size":64657027
}
}
]
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b07",
"name":"Input file analysis",
"runningAt":"2024-03-22T12:44:19Z",
"updatedAt":"2024-03-22T12:44:20Z",
"finishedAt":"2024-03-22T12:44:20Z",
"progress":100,
"status":"FINISHED"
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b06",
"name":"Encoding",
"runningAt":"2024-03-22T12:44:21Z",
"updatedAt":"2024-03-22T12:45:49Z",
"finishedAt":"2024-03-22T12:45:49Z",
"progress":100,
"status":"FINISHED",
"metadata":[
{
"date":"2024-03-22T12:45:49Z",
"data":{
"bytesEncoded":970666116,
"avgFramesEncodedPerSecond":1154.0,
"framesEncoded":71575,
"realtimeFactor":9.620295698924732
}
}
]
},
{
"id":"0a7033b8-8e5b-149f-818e-66315c296b08",
"name":"Analysis",
"runningAt":"2024-03-22T12:44:21Z",
"updatedAt":"2024-03-22T12:45:49Z",
"finishedAt":"2024-03-22T12:44:51Z",
"progress":100,
"status":"FINISHED"
}
],
"error":{
"code":-1,
"category":"UNDEFINED",
"text":"Unable to determine if the error is retryable.",
"retryHint":"UNDEFINED"
}
},
"messages":[
{
"id":"f21386c7-9f32-40f1-9516-78406f6b9662",
"date":"2024-03-22T12:45:55Z",
"type":"INFO",
"text":"Successfully retrieved status of Encoding with id ae542a44-d4d4-4f93-9148-8e38fbf269e1!"
}
]
}
}
After 3 weeks without getting support from Bitmovin, we found the problem with the dotnet SDK Example code.
The BuildAbsolutePath is wrongly using \
(backslash) when running on a Windows machine instead of using /
(forward slash).
Wrong code https://github.com/bitmovin/bitmovin-api-sdk-examples/blob/main/dotnet/Bitmovin.Api.Sdk.Examples/MultiCodecEncoding.cs#L1221C9-L1224C10
private string BuildAbsolutePath(string relativePath)
{
return Path.Join(_configProvider.GetS3OutputBasePath(), $"{ClassName}-{DATE_STRING}", relativePath);
}
Fixed code
private string BuildAbsolutePath(string relativePath)
{
var s3OutputBasePath = _configProvider.GetS3OutputBasePath();
var absolutePath = Path.Join(s3OutputBasePath, $"{ClassName}-{DATE_STRING}", relativePath);
absolutePath = absolutePath.Replace("\\", "/");
return absolutePath;
}