Last update:2025-03-21 14:55:25
Media Packaging lets you transform the container format of your audio and video files without altering their content quality. This process ensures your media maintains its integrity while adapting to various delivery requirements.
CDNetworks supports a wide range of media formats:
Video Formats:
Audio Formats:
For streaming formats (HLS and DASH), CDNetworks offers segment sharing within manifests. This means your .mpd
(DASH) and .m3u8
(HLS) files can share identical segments, significantly reducing storage requirements on your Object Storage.
Structure your fops
command as shown below:
<op>/<Format>
/vn/<value>
/an/<value>
/segtime/<value>
/fastStartSeg/<value>
/dash_hls_playlist/<value>
/segtype/<value>
|saveas/<Urlsafe_Base64_Encode(bucket:savedfilename)>
Parameter | Required | Description |
---|---|---|
op |
Yes | Operation type. Use avthumb for packaging. |
format |
Yes | Target format (mp4, flv, m3u8, mpd, etc.) |
an |
No | Audio track control: • 0 (default) - Keep audio track• 1 - Remove audio track |
vn |
No | Video content control: • 0 (default) - Keep video content• 1 - Remove video content |
segtime |
No | Duration of segments for HLS and DASH formats in seconds (1-120). Default behavior: • For non-m3u8/mpd inputs: 10-second segments • For m3u8/mpd inputs without transcoding: Only manifest is produced • For m3u8/mpd inputs with transcoding: System calculates duration dynamically |
fastStartSeg |
No | HLS only: Sets shorter initial segments for faster startup. Format: MxNs where:• M = number of segments• N = duration in secondsExample: 5x3s creates five 3-second segments at the beginning |
segtype |
No | DASH only: Defines the output format of DASH segments: • mp4 - MP4 segments• m4s (default) - M4S segments |
dash_hls_playlist |
No | Controls generation of HLS playlist from DASH content: • 1 - Generate both MPD and M3U8 files for cross-platform compatibility• 0 (default) - Generate only MPD file for DASH-focused delivery |
saveas |
No | Output location as URL-safe Base64-encoded string: Urlsafe_Base64_Encode(bucket:savedfilename) |
This example packages a video named test.flv
from the vod-wcs-test001
bucket into MP4 format:
Pseudocode:
curl -v -X POST
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.flv)&fops=Urlsafe_Base64_Encode(avthumb/mp4|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test.mp4))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"
Actual Request:
curl -v -X POST
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5mbHY=&fops=YXZ0aHVtYi9tcDR8c2F2ZWFzL2RtOWtMWGRqY3kxMFpYTjBNREF4T25SbGMzUXViWEEw&force=1&separate=1"
-H "Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"
This example packages a video named test.mp4
into HLS format with 15-second segments:
Pseudocode:
curl -v -X POST
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(avthumb/m3u8/segtime/15|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test.m3u8))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"
Actual Request:
curl -v -X POST
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcDQ=&fops=YXZ0aHVtYi9tM3U4L3NlZ3RpbWUvMTV8c2F2ZWFzL2RtOWtMWGRqY3kxMFpYTjBNREF4T25SbGMzUXViVE4xT0E9PQ==&force=1&separate=1"
-H "Authorization:Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"
This example packages a video named test.mp4
into DASH format:
Pseudocode:
curl -v -X POST
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mpd)&fops=Urlsafe_Base64_Encode(avthumb/mpd|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test.mpd))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"
Actual Request:
curl -v -X POST
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcGQ=&fops=YXZ0aHVtYi9tcGR8c2F2ZWFzL2RtOWtMWGRqY3kxMFpYTjBNREF4T25SbGMzUXViWEJr&force=1&separate=1"
-H "Authorization:Authorization:AccessKey:EncodeSign"
--url "http://mgrDomain/fops"