Large video transformations not working
I am working with some large videos. (300mb +) that need to be encoded into h264. I have set eager transformations on the upload preset and eager_async is set to true. However, when I try to view the video using the vc_h264 transformation in the URL. The video will not play. It also looks like there are no derived versions of the video in h264.
What am I missing here?
-
Hi Edward,
For any file that's larger than 100MB, you need to upload it in chunks using one of our client SDKs. If you wish to implement your own chunk upload, please check the following article.
Here is a sample JS Fiddle that you can try to use.
Hope this helps.
-1 -
I don’t have an issue with uploading.
For anyone else who read this, the uploads are working fine but the transformations take about 30 mins before they are ready
0 -
Hey Edward,
It seems that you are not using the `eager_notification_url` parameter which is used for specifying an endpoint on your server where we send webhooks whenever the video processing is complete and ready for use.
Although large video processing can take somewhat longer than small video or image processing, a 300MB video shouldn't take 30 mins to be processed.
Upon checking our logs I can see what caused this behavior. Cloudinary has an error caching mechanism that caches 4xx errors in a back-off manner that starts with 1 minute but doubles with every additional request that results in the same error, up to a maximum of 24 hours.
When you request a transformation URL that isn't available yet, you receive a 400 error with the online manipulation limit restriction message. Since you've requested the above-mentioned URL several times while the initial error was still cached, it increased the error caching up to the 30 minutes period you've mentioned. Once the cache was cleared, you were able to get the already finished re-encoded video.
Therefore, I highly suggest that you set up an endpoint on your server which will be used for receiving notifications from our servers once your processed videos are ready for delivery and make sure to include that endpoint within the `eager_notification_url` parameter in your requests.
Only make requests towards the transformed video URL after you've received the confirmation that it is ready.
I hope this makes sense :)0
Post is closed for comments.
Comments
3 comments