Image & Video APIs

Remove codec parameter from video Content-Type header

Last updated: Apr-20-2026

When Cloudinary delivers an MP4 video without transformations, the HTTP Content-Type response header includes a codec parameter, for example video/mp4;codecs=avc1. Some downstream services, such as Twilio WhatsApp templates, reject this extended format and require a plain video/mp4 Content-Type.

You can fix this by applying a video codec transformation, which forces Cloudinary to re-encode the video and serve it with a plain Content-Type.

Why this happens

For untransformed MP4 delivery, Cloudinary includes codec information in the Content-Type header as a hint to the client. You can verify this with curl:

The response includes:

When you apply a vc_* (video codec) transformation, Cloudinary re-encodes the video and serves the result with a plain Content-Type:

The response now includes:

The fix

Add a vc_h264:high transformation to your delivery URL. This re-encodes the video using the H.264 High profile and produces a Content-Type: video/mp4 response without the codec parameter:

Other vc_* values that also strip the codec parameter include vc_h264, vc_h264:baseline, and vc_auto.

Note
Re-encoding produces a new derived asset that counts toward your transformation and storage quotas. Cloudinary caches the re-encoded video after the first request, so subsequent requests don't trigger additional processing.

Verify your URL

Some transformation combinations can cause the codec parameter to reappear. Before handing a URL to a downstream service, confirm the Content-Type with curl -I:

Check that the content-type line reads video/mp4 without a ;codecs=... suffix.

Related topics
  • Video codec settings: Configure codec, profile, and level for video delivery.
  • vc (video_codec) in the Transformation Reference: Full parameter syntax and default codec settings per format.

✔️ Feedback sent!

Rate this page:

one star two stars three stars four stars five stars