Alle bronnen voor embeds hebben een deterministische URL. Dit artikel beschrijft de paden en bestandsnamen waarmee je de gewenste bronbestanden vindt.
https://space-[space_hash].video-dns.com/[embed_id]/[filename]
Om de embed-hash te splitsen in de space hash en het embed id, gebruik je de eerste vijf tekens voor de space hash en de volgende tien tekens voor het embed id.
https://space-ubg50.video-dns.com/Cq5Ilpnar1/h264_sd.mp4
Elke embed publiceert ook een manifest.json-bestand in de hoofdmap van de embed:
https://space-[space_hash].video-dns.com/[embed_id]/manifest.json
Dit is het machineleesbare startpunt voor de mave-componentbibliotheek. Het element <mave-player> heeft alleen een embed-ID nodig, haalt dit manifest op en bepaalt daarmee welke video-, audio-, ondertitelings-, poster- en storyboardbestanden moeten worden geladen. Omdat het manifest de benodigde metadata bevat, kan de componentbibliotheek rechtstreeks op een zelfstandige webpagina worden gebruikt zonder eerst de mave-applicatie aan te roepen.
Het manifest bevat metadata zoals:
| Veld | Beschrijving |
|---|---|
| id | Het embed-ID. |
| name | De naam van de embed. |
| space_id | Het space-ID waarmee CDN-URL’s worden opgebouwd. |
| poster | Informatie over de poster, miniatuur en aangepaste miniatuur. |
| settings | Spelerinstellingen zoals beeldverhouding, herhalen, bedieningselementen, kleur en postervoorkeur. |
| video | Videometadata, waaronder duur, taal, status, versie, oorspronkelijk bestand en gegenereerde uitvoeringen. |
| subtitles | Ondertiteltracks met labels, talen en paden. |
| audio_tracks | Optionele extra audiotracks. |
Het manifest blijft in de hoofdmap van de embed. Gegenereerde mediabestanden kunnen een versienummer krijgen: zodra de speler video.version heeft gelezen, laadt hij media uit een pad zoals https://space-ubg50.video-dns.com/Cq5Ilpnar1/v8/thumbnail.jpg. Zo kunnen clients het manifest vernieuwen en de gegenereerde bestanden toch veilig cachen.
Dit zijn uitvoeringen op volledige lengte voor gebruik in het <mave-player>-element.
| Resolutie | Codec | Container | Bestandsnaam |
|---|---|---|---|
| SD 480p | H.264 | MP4 | h264_sd.mp4 |
| HD 720p | H.264 | MP4 | h264_hd.mp4 |
| FHD 1080p | H.264 | MP4 | h264_fhd.mp4 |
| QHD 1440p | H.264 | MP4 | h264_qhd.mp4 |
| UHD 4k | H.264 | MP4 | h264_uhd.mp4 |
| SD 480p | H.264 | HLS | /h264_sd_hls/playlist.m3u8 |
| HD 720p | H.264 | HLS | /h264_hd_hls/playlist.m3u8 |
| FHD 1080p | H.264 | HLS | /h264_fhd_hls/playlist.m3u8 |
| QHD 1440p | H.264 | HLS | /h264_qhd_hls/playlist.m3u8 |
| UHD 4k | H.264 | HLS | /h264_uhd_hls/playlist.m3u8 |
Dit zijn uitvoeringen van maximaal 60 seconden voor gebruik in het <mave-clip>-element.
| Resolutie | Codec | Container | Bestandsnaam |
|---|---|---|---|
| SD 480p | HEVC | MP4 | hevc_sd_clip.mp4 |
| HD 720p | HEVC | MP4 | hevc_hd_clip.mp4 |
| FHD 1080p | HEVC | MP4 | hevc_fhd_clip.mp4 |
| QHD 1440p | HEVC | MP4 | hevc_qhd_clip.mp4 |
| SD 480p | AV1 | MP4 | av1_sd_clip.mp4 |
| HD 720p | AV1 | MP4 | av1_hd_clip.mp4 |
| FHD 1080p | AV1 | MP4 | av1_fhd_clip.mp4 |
| QHD 1440p | AV1 | MP4 | av1_qhd_clip.mp4 |
Om soepel door een video te kunnen zoeken, voegen we extra keyframes toe. Dit zijn referentiepunten in de video. Standaardvideo’s plaatsen keyframes met grotere tussenpozen, waardoor zoeken haperig kan aanvoelen omdat de speler frames vanaf een verder gelegen keyframe moet berekenen.
| Resolutie | Codec | Container | Bestandsnaam |
|---|---|---|---|
| SD 480p | H.264 | MP4 | h264_sd_clip_keyframes.mp4 |
| HD 720p | H.264 | MP4 | h264_hd_clip_keyframes.mp4 |
| FHD 1080p | H.264 | MP4 | h264_fhd_clip_keyframes.mp4 |
| Resolutie | Codec | Beschrijving | Bestandsnaam |
|---|---|---|---|
| Origineel | JPEG | Eerste frame van de video | poster.jpg |
| Origineel | WebP | Eerste frame van de video | poster.webp |
| SD 360p | JPEG | Eerste frame van de video of een aangepaste upload | thumbnail.jpg |
| SD 360p | JPEG | Frame op 0/6 van de video, in klein formaat | thumbnail_0.jpg |
| SD 360p | JPEG | Frame op 1/6 van de video, in klein formaat | thumbnail_1.jpg |
| SD 360p | JPEG | Frame op 2/6 van de video, in klein formaat | thumbnail_2.jpg |
| SD 360p | JPEG | Frame op 3/6 van de video, in klein formaat | thumbnail_3.jpg |
| SD 360p | JPEG | Frame op 4/6 van de video, in klein formaat | thumbnail_4.jpg |
| SD 360p | JPEG | Frame op 5/6 van de video, in klein formaat | thumbnail_5.jpg |
| Origineel | AVIF | Poster-overlay met afspeelicoon | placeholder.avif |
| Origineel | WebP | Poster-overlay met afspeelicoon | placeholder.webp |
| Origineel | JPEG | Poster-overlay met afspeelicoon | placeholder.jpg |
| Sprite | JPEG | Storyboard-sprite voor miniaturen | storyboard.jpg |
Het bijbehorende WebVTT-manifest voor storyboardnavigatie wordt gepubliceerd als storyboard.vtt.
| Bitrate | Codec | Container | Bestandsnaam |
|---|---|---|---|
| 128kbps | LAME | MP3 | audio.mp4 |
| 128kbps | AAC | HLS | audio_hls/playlist.m3u8 |
Als de bronvideo meerdere audiosporen bevat, worden die gepubliceerd volgens hetzelfde patroon als _audio_1_hls/playlist.m3u8, _audio_2_hls/playlist.m3u8, enzovoort. Audiosporen die je handmatig via het dashboard toevoegt, krijgen gegenereerde ID’s, bijvoorbeeld _audio_track_a1b2_hls/playlist.m3u8_, en zijn toegankelijk via de API.