2

"failureReason": "Job validation failed: Request field config is invalid, expected an estimated total output size of at most 400 GB (current value is 1194622697155 bytes).",

The actual input file was only 8 seconds long. It was created using the safari media recorder api on mac osx.

"failureReason": "Job validation failed: Request field config.editList[0].startTimeOffset is 0s, expected start time less than the minimum duration of all inputs for this atom (0s).",

The actual input file was 8 seconds long. It was created using the desktop Chrome media recorder api, with mimeType "webm; codecs=vp9" on mac osx.

Note that Stackoverlow wouldn't allow me to include the tag google-cloud-transcoder suggested by "Getting Support" https://cloud.google.com/transcoder/docs/getting-support?hl=sr

Prajna Rai T
  • 1,666
  • 3
  • 15
  • Hi @ChristopherOliver, Please try to avoid sharing PII data on Stack Overflow. – Prajna Rai T Aug 27 '21 at 14:35
  • the documentation is sparse and the examples are incomplete. definitely feels under resourced. I regret spending 5 hours on this, AWS's offering seems much stronger. – David Feb 09 '23 at 06:07

3 Answers3

1

Like Faniel mentioned, your first issue is that your video was less than 10 seconds which is below the minimum 10 seconds for the API.

Your second issue is that the "Duration" information is likely missing from the EBML headers of your .webm file. When you record with MediaRecorder the duration of your video is set to N/A in the file headers as it is not known in advance. This means the Transcoder API will treat the length of your video is Infinity / 0. Some consider this a bug with Chromium.

To confirm this is your issue you can use ts-ebml or ffprobe to inspect the headers of your video. You can also use these tools to repair the headers. Read more about this here and here

Also just try running with the Transcoder API with this demo .webm which has its duration information set correctly.

Abhishek Chadha
  • 430
  • 4
  • 9
  • Does the Transcoder API still have a minimum length? I can't find that documented anywhere except here. – drzax Mar 29 '22 at 22:59
  • 1
    @drzax I believe the limit is now 5 seconds but it's still there https://cloud.google.com/transcoder/docs/transcode-video – Abhishek Chadha Apr 04 '22 at 04:16
  • Kinda dumb they have a minimum length, we have to tell users "Hey we have a minimum length on your videos cause of Google Cloud limitations :-|) – Oliver Dixon Apr 21 '23 at 07:59
1

This Google documentation states that the input file’s length must be at least 5 seconds in duration and should be stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4). Job Validation error can occur when the inputs are not properly packaged and don't contain duration metadata or contain incorrect duration metadata. When the inputs are not properly packaged, we can explicitly specify startTimeOffset and endTimeOffset in the job config to set the correct duration. If the duration of the ffprobe output (in seconds) of the job config is more than 400 GB, it can result in a job validation error. We can use the following formula to estimate the output size.

estimatedTotalOutputSizeInBytes = bitrateBps * outputDurationInSec / 8;
Prajna Rai T
  • 1,666
  • 3
  • 15
0

Thanks for the question and feedback. The Transcoder API currently has a minimum duration of 10 seconds which may be why the job wasn't successful.

Faniel
  • 5
  • 1