{"id":502,"date":"2008-01-14T16:30:21","date_gmt":"2008-01-15T00:30:21","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/the-server-of-fate\/"},"modified":"2009-04-03T09:34:16","modified_gmt":"2009-04-03T16:34:16","slug":"the-server-of-fate","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/","title":{"rendered":"The Server of Fate"},"content":{"rendered":"<p>Pursuant to the <a href=\"http:\/\/multimedia.cx\/eggs\/catchy-name\/\">last post&#8217;s naming contest<\/a>, SvdB had a novel entry of &#8220;FFmpeg Make \u2018n\u2019 Break&#8221;. However, Kostya&#8217;s entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass:<\/p>\n<p><a href=\"http:\/\/fate.multimedia.cx\/\"><strong>FATE &#8211; FFmpeg Automated Testing Environment<\/strong><\/a><\/p>\n<p>Some may have observed that there still are not very many tests yet. I&#8217;m being slow and deliberate with these, at least at the outset. My first impulse was to start manually adding tests to validate a bunch of the fringe formats that I&#8217;m most familiar with (since I implemented them), as I have done with <a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=5\">this test for the FILM system<\/a>. However, <a href=\"http:\/\/guru.multimedia.cx\/\">the guru<\/a> recommended that I put the <a href=\"http:\/\/ftp3.itu.ch\/av-arch\/jvt-site\/draft_conformance\/\">H.264 conformance suite<\/a> to the test.<\/p>\n<p>The base directory has 136 samples.  <em>Yeah, I&#8217;m leaning towards <strong>automated tool<\/strong> on this one.<\/em><\/p>\n<p>This FATE project is prompting me to craft a variety of special tools to both make my life easier and ensure fewer errors.I could just make a tool to dump all the samples into the database, pass or fail, and let the test failure count tell the story. However, that might not be useful in the same way that it&#8217;s not useful to have hundreds of warnings in a compilation &#8212; it distracts from real problems (i.e., we know that 100 or so tests are supposed to fail and we don&#8217;t notice when a formerly working test just broke).<\/p>\n<p>I also figured out that it&#8217;s not so straightforward to dump all the tests in at once, at least not with correct results. Each archive has, at a minimum, a raw H.264-encoded file and the raw YUV file. A decode of the H.264 file is supposed to be bit exact when compared to the raw file. You can feed the raw YUV image into FFmpeg (and encode to the framecrc target for concise stdout text), but only if you know the file&#8217;s resolution. The samples usually have readme files included, and they usually mention the resolution, but I&#8217;m not going through that much trouble to pick it out. I&#8217;ve already worked out the regexps to figure out what the encoded, raw, and readme files can possibly be named.<\/p>\n<p>So my current plotted strategy works like this; for each .zip file in the conformance suite:<\/p>\n<ul>\n<li>create a short name for the database in the form of, e.g., &#8220;h264-conformance-aud_mw_e&#8221; for the file AUD_MW_E.zip<\/li>\n<li>query the FATE database to see if a test spec already has that name<\/li>\n<li>if the name is taken, the test is already known to have been working in FFmpeg, skip to next file<\/li>\n<li>unzip the archive<\/li>\n<li>find the encoded, raw, and readme files<\/li>\n<li>using the latest build of &#8216;ffmpeg&#8217;, decode the encoded file: &#8216;ffmpeg -i -f h264 encoded_file decoded.yuv&#8217;<\/li>\n<li>run &#8216;diff &#8211;brief&#8217; against decoded.yuv and the expected output<\/li>\n<li>if the files are identical, craft a new test spec using the readme file for much of the description, and set the expected stdout text to the output of &#8216;ffmpeg -i -f h264 encoded_file -f framecrc -&#8216;<\/li>\n<li>delete files and move on to next archive<\/li>\n<\/ul>\n<p>That&#8217;s the basic idea. Oh yeah, and general sanity considerations, like testing this on a throwaway table first. The point of building the script this way is to make it easy to re-run it again as H.264 fixes are introduced, and add the newly working tests to the test suite that will be run on each build. Currently, 51\/136 of the conformance vectors decode in a bit exact manner.<\/p>\n<p>This will be good practice for when it&#8217;s time to add conformance suites such as AAC where there is an added challenge that the output will not necessarily be bit exact.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pursuant to the last post&#8217;s naming contest, SvdB had a novel entry of &#8220;FFmpeg Make \u2018n\u2019 Break&#8221;. However, Kostya&#8217;s entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE &#8211; FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-502","post","type-post","status-publish","format-standard","hentry","category-fate-server"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pursuant to the last post&#039;s naming contest, SvdB had a novel entry of &quot;FFmpeg Make \u2018n\u2019 Break&quot;. However, Kostya&#039;s entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Multimedia Mike\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"The Server of Fate | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta property=\"og:description\" content=\"Pursuant to the last post&#039;s naming contest, SvdB had a novel entry of &quot;FFmpeg Make \u2018n\u2019 Break&quot;. However, Kostya&#039;s entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2008-01-15T00:30:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2009-04-03T16:34:16+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"The Server of Fate | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pursuant to the last post&#039;s naming contest, SvdB had a novel entry of &quot;FFmpeg Make \u2018n\u2019 Break&quot;. However, Kostya&#039;s entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#article\",\"name\":\"The Server of Fate | Breaking Eggs And Making Omelettes\",\"headline\":\"The Server of Fate\",\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"},\"datePublished\":\"2008-01-14T16:30:21-08:00\",\"dateModified\":\"2009-04-03T09:34:16-07:00\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#webpage\"},\"articleSection\":\"FATE Server\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/fate-server\\\/#listItem\",\"name\":\"FATE Server\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/fate-server\\\/#listItem\",\"position\":2,\"name\":\"FATE Server\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/fate-server\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#listItem\",\"name\":\"The Server of Fate\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#listItem\",\"position\":3,\"name\":\"The Server of Fate\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/fate-server\\\/#listItem\",\"name\":\"FATE Server\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/\",\"name\":\"Multimedia Mike\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Multimedia Mike\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#webpage\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/\",\"name\":\"The Server of Fate | Breaking Eggs And Making Omelettes\",\"description\":\"Pursuant to the last post's naming contest, SvdB had a novel entry of \\\"FFmpeg Make \\u2018n\\u2019 Break\\\". However, Kostya's entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/the-server-of-fate\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"datePublished\":\"2008-01-14T16:30:21-08:00\",\"dateModified\":\"2009-04-03T09:34:16-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"The Server of Fate | Breaking Eggs And Making Omelettes","description":"Pursuant to the last post's naming contest, SvdB had a novel entry of \"FFmpeg Make \u2018n\u2019 Break\". However, Kostya's entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests","canonical_url":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#article","name":"The Server of Fate | Breaking Eggs And Making Omelettes","headline":"The Server of Fate","author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"},"datePublished":"2008-01-14T16:30:21-08:00","dateModified":"2009-04-03T09:34:16-07:00","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#webpage"},"isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#webpage"},"articleSection":"FATE Server"},{"@type":"BreadcrumbList","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","position":1,"name":"Home","item":"https:\/\/multimedia.cx\/eggs","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/#listItem","name":"FATE Server"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/#listItem","position":2,"name":"FATE Server","item":"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#listItem","name":"The Server of Fate"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#listItem","position":3,"name":"The Server of Fate","previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/#listItem","name":"FATE Server"}}]},{"@type":"Organization","@id":"https:\/\/multimedia.cx\/eggs\/#organization","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","url":"https:\/\/multimedia.cx\/eggs\/"},{"@type":"Person","@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author","url":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/","name":"Multimedia Mike","image":{"@type":"ImageObject","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Multimedia Mike"}},{"@type":"WebPage","@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#webpage","url":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/","name":"The Server of Fate | Breaking Eggs And Making Omelettes","description":"Pursuant to the last post's naming contest, SvdB had a novel entry of \"FFmpeg Make \u2018n\u2019 Break\". However, Kostya's entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/#website"},"breadcrumb":{"@id":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/#breadcrumblist"},"author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"creator":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"datePublished":"2008-01-14T16:30:21-08:00","dateModified":"2009-04-03T09:34:16-07:00"},{"@type":"WebSite","@id":"https:\/\/multimedia.cx\/eggs\/#website","url":"https:\/\/multimedia.cx\/eggs\/","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","inLanguage":"en-US","publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"}}]},"og:locale":"en_US","og:site_name":"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering","og:type":"article","og:title":"The Server of Fate | Breaking Eggs And Making Omelettes","og:description":"Pursuant to the last post's naming contest, SvdB had a novel entry of &quot;FFmpeg Make \u2018n\u2019 Break&quot;. However, Kostya's entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests","og:url":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/","article:published_time":"2008-01-15T00:30:21+00:00","article:modified_time":"2009-04-03T16:34:16+00:00","twitter:card":"summary","twitter:title":"The Server of Fate | Breaking Eggs And Making Omelettes","twitter:description":"Pursuant to the last post's naming contest, SvdB had a novel entry of &quot;FFmpeg Make \u2018n\u2019 Break&quot;. However, Kostya's entry of FATE was destined for victory due to its sheer simplicity. And so it comes to pass: FATE - FFmpeg Automated Testing Environment Some may have observed that there still are not very many tests"},"aioseo_meta_data":{"post_id":"502","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-31 21:57:33","updated":"2025-12-31 18:48:42","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/\" title=\"FATE Server\">FATE Server<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tThe Server of Fate\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/multimedia.cx\/eggs"},{"label":"FATE Server","link":"https:\/\/multimedia.cx\/eggs\/category\/fate-server\/"},{"label":"The Server of Fate","link":"https:\/\/multimedia.cx\/eggs\/the-server-of-fate\/"}],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=502"}],"version-history":[{"count":2,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/502\/revisions"}],"predecessor-version":[{"id":1338,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/502\/revisions\/1338"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}