bitmovin-api-sdk-examples icon indicating copy to clipboard operation
bitmovin-api-sdk-examples copied to clipboard

Error "Encoding Output validation failed!!

Open fbridger opened this issue 11 months ago • 1 comments

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 and audio files
  • The Storage Account has been configured to be publicly accessible

How can I get more/additional information about what this error means?

image

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!"
         }
      ]
   }
}

fbridger avatar Mar 22 '24 14:03 fbridger

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;
}

fbridger avatar Apr 11 '24 19:04 fbridger