{"id":20767783,"url":"https://github.com/dmnsgn/media-codecs","last_synced_at":"2025-04-30T11:22:24.360Z","repository":{"id":153645393,"uuid":"628078490","full_name":"dmnsgn/media-codecs","owner":"dmnsgn","description":"Get a codec parameter string (like 'avc1.4d002a') from human readable options (like { name: 'Main', level: '4.2' }) and back to a descriptive name ('AVC Main Profile Level 4.2').","archived":false,"fork":false,"pushed_at":"2025-02-26T20:45:20.000Z","size":1014,"stargazers_count":29,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T22:32:52.466Z","etag":null,"topics":["avc","codecs","mp4","vp","webcodecs","webm"],"latest_commit_sha":null,"homepage":"https://dmnsgn.github.io/media-codecs/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmnsgn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-14T21:31:50.000Z","updated_at":"2025-03-11T17:49:19.000Z","dependencies_parsed_at":"2024-11-17T23:50:13.205Z","dependency_job_id":null,"html_url":"https://github.com/dmnsgn/media-codecs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnsgn%2Fmedia-codecs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnsgn%2Fmedia-codecs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnsgn%2Fmedia-codecs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnsgn%2Fmedia-codecs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmnsgn","download_url":"https://codeload.github.com/dmnsgn/media-codecs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251689011,"owners_count":21627817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avc","codecs","mp4","vp","webcodecs","webm"],"created_at":"2024-11-17T11:33:24.190Z","updated_at":"2025-04-30T11:22:24.327Z","avatar_url":"https://github.com/dmnsgn.png","language":"JavaScript","funding_links":["https://paypal.me/dmnsgn"],"categories":[],"sub_categories":[],"readme":"# media-codecs\n\n[![npm version](https://img.shields.io/npm/v/media-codecs)](https://www.npmjs.com/package/media-codecs)\n[![stability-stable](https://img.shields.io/badge/stability-stable-green.svg)](https://www.npmjs.com/package/media-codecs)\n[![npm minzipped size](https://img.shields.io/bundlephobia/minzip/media-codecs)](https://bundlephobia.com/package/media-codecs)\n[![dependencies](https://img.shields.io/librariesio/release/npm/media-codecs)](https://github.com/dmnsgn/media-codecs/blob/main/package.json)\n[![types](https://img.shields.io/npm/types/media-codecs)](https://github.com/microsoft/TypeScript)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-fa6673.svg)](https://conventionalcommits.org)\n[![styled with prettier](https://img.shields.io/badge/styled_with-Prettier-f8bc45.svg?logo=prettier)](https://github.com/prettier/prettier)\n[![linted with eslint](https://img.shields.io/badge/linted_with-ES_Lint-4B32C3.svg?logo=eslint)](https://github.com/eslint/eslint)\n[![license](https://img.shields.io/github/license/dmnsgn/media-codecs)](https://github.com/dmnsgn/media-codecs/blob/main/LICENSE.md)\n\nGet a codec parameter string (like `\"avc1.4d002a\"`) from human readable options (like `{ name: \"Main\", level: \"4.2\" }`) and back to a descriptive name (\"AVC Main Profile Level 4.2\").\n\nUseful for checking supported codecs with `HTMLMediaElement.canPlayType` / `MediaSource.isTypeSupported` and to pass as option for the [WebCodecs API](https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API) VideoEncoder [configure parameters](https://developer.mozilla.org/en-US/docs/Web/API/VideoEncoder/configure#parameters). Supports Advanced Video Coding ([AVC](https://en.wikipedia.org/wiki/Advanced_Video_Coding)), Video Partition ([VP8/VP9](\u003c(https://www.webmproject.org/vp9/)\u003e)), AOMedia Video ([AV1](https://en.wikipedia.org/wiki/AV1)) and partially High Efficiency Video Coding [HEVC](https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding).\n\nSee the [demo](https://dmnsgn.github.io/media-codecs) that checks current browser support of all [video codecs](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs#common_codecs) and MDN's [Codecs in common media types](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter).\n\n[![paypal](https://img.shields.io/badge/donate-paypal-informational?logo=paypal)](https://paypal.me/dmnsgn)\n[![coinbase](https://img.shields.io/badge/donate-coinbase-informational?logo=coinbase)](https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3)\n[![twitter](https://img.shields.io/twitter/follow/dmnsgn?style=social)](https://twitter.com/dmnsgn)\n\n![](https://raw.githubusercontent.com/dmnsgn/media-codecs/main/screenshot.png)\n\n## Installation\n\n```bash\nnpm install media-codecs\n```\n\n## Usage\n\n```js\nimport { AVC } from \"media-codecs\";\n\nconst codec = AVC.getCodec({ profile: \"Main\", level: \"4.2\" });\n// =\u003e avc1.4d002a\nconst mimeType = `video/mp4;codecs=\"${codec}\"`;\n\nconsole.log(MediaSource.isTypeSupported(mimeType));\n```\n\nRoadmap:\n\n- [ ] HEVC compatibility and constraints\n- [ ] VP, HEVC and AV1 optional parameters\n\n## API\n\n\u003c!-- api-start --\u003e\n\n## Modules\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#module_media-codecs\"\u003emedia-codecs\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#module_av\"\u003eav\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#module_avc\"\u003eavc\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#module_hevc\"\u003ehevc\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#module_vp\"\u003evp\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\n## Typedefs\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#AVProfileItem\"\u003eAVProfileItem\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#VCProfileItem\"\u003eVCProfileItem\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#CodecItem\"\u003eCodecItem\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#MediaCodecItem\"\u003eMediaCodecItem\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#VPCodecOptions\"\u003eVPCodecOptions\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#AVCodecOptions\"\u003eAVCodecOptions\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#AVCCodecOptions\"\u003eAVCCodecOptions\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003cdt\u003e\u003ca href=\"#HEVCCodecOptions\"\u003eHEVCCodecOptions\u003c/a\u003e : \u003ccode\u003eobject\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\n\u003ca name=\"module_media-codecs\"\u003e\u003c/a\u003e\n\n## media-codecs\n\n- [media-codecs](#module_media-codecs)\n  - [.VP](#module_media-codecs.VP) : [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n  - [.AV](#module_media-codecs.AV) : [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n  - [.AVC](#module_media-codecs.AVC) : [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n  - [.HEVC](#module_media-codecs.HEVC) : [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\n\u003ca name=\"module_media-codecs.VP\"\u003e\u003c/a\u003e\n\n### media-codecs.VP : [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\n**Kind**: static property of [\u003ccode\u003emedia-codecs\u003c/code\u003e](#module_media-codecs)\n\u003ca name=\"module_media-codecs.AV\"\u003e\u003c/a\u003e\n\n### media-codecs.AV : [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\n**Kind**: static property of [\u003ccode\u003emedia-codecs\u003c/code\u003e](#module_media-codecs)\n\u003ca name=\"module_media-codecs.AVC\"\u003e\u003c/a\u003e\n\n### media-codecs.AVC : [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n\n**Kind**: static property of [\u003ccode\u003emedia-codecs\u003c/code\u003e](#module_media-codecs)\n\u003ca name=\"module_media-codecs.HEVC\"\u003e\u003c/a\u003e\n\n### media-codecs.HEVC : [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\n**Kind**: static property of [\u003ccode\u003emedia-codecs\u003c/code\u003e](#module_media-codecs)\n\u003ca name=\"module_av\"\u003e\u003c/a\u003e\n\n## av\n\n- [av](#module_av)\n  - [.AV_CODECS](#module_av.AV_CODECS) : [\u003ccode\u003eArray.\u0026lt;CodecItem\u0026gt;\u003c/code\u003e](#CodecItem)\n  - [.AV_PROFILES](#module_av.AV_PROFILES) : [\u003ccode\u003eArray.\u0026lt;AVProfileItem\u0026gt;\u003c/code\u003e](#AVProfileItem)\n  - [.AV_LEVELS](#module_av.AV_LEVELS) : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n  - [.AV_TIER](#module_av.AV_TIER) : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n  - [.AV_BIT_DEPTH](#module_av.AV_BIT_DEPTH) : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n  - [.getAllItems()](#module_av.getAllItems) ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n  - [.getCodec(options)](#module_av.getCodec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n  - [.getCodecName(codec)](#module_av.getCodecName) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\n\u003ca name=\"module_av.AV_CODECS\"\u003e\u003c/a\u003e\n\n### av.AV_CODECS : [\u003ccode\u003eArray.\u0026lt;CodecItem\u0026gt;\u003c/code\u003e](#CodecItem)\n\nList of codecs\n\n**Kind**: static constant of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\u003ca name=\"module_av.AV_PROFILES\"\u003e\u003c/a\u003e\n\n### av.AV_PROFILES : [\u003ccode\u003eArray.\u0026lt;AVProfileItem\u0026gt;\u003c/code\u003e](#AVProfileItem)\n\nList of AV profiles numbers\n\n**Kind**: static constant of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n**See**: [av1-spec](https://aomediacodec.github.io/av1-spec/#profiles)\n\u003ca name=\"module_av.AV_LEVELS\"\u003e\u003c/a\u003e\n\n### av.AV_LEVELS : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n\nAV Levels\n\n**Kind**: static constant of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n**See**: [av1-spec](https://aomediacodec.github.io/av1-spec/#levels)\n\u003ca name=\"module_av.AV_TIER\"\u003e\u003c/a\u003e\n\n### av.AV_TIER : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n\nList of supported tier\n\n**Kind**: static constant of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\u003ca name=\"module_av.AV_BIT_DEPTH\"\u003e\u003c/a\u003e\n\n### av.AV_BIT_DEPTH : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n\nList of supported bit depth\n\n**Kind**: static constant of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\u003ca name=\"module_av.getAllItems\"\u003e\u003c/a\u003e\n\n### av.getAllItems() ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n\nReturn a list of all possible codec parameter string and their human readable names\n\n**Kind**: static method of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\u003ca name=\"module_av.getCodec\"\u003e\u003c/a\u003e\n\n### av.getCodec(options) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec parameter string\n\n**Kind**: static method of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\n| Param   | Type                                           |\n| ------- | ---------------------------------------------- |\n| options | [\u003ccode\u003eAVCodecOptions\u003c/code\u003e](#AVCodecOptions) |\n\n\u003ca name=\"module_av.getCodecName\"\u003e\u003c/a\u003e\n\n### av.getCodecName(codec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec human readbable name\n\n**Kind**: static method of [\u003ccode\u003eav\u003c/code\u003e](#module_av)\n\n| Param | Type                | Description                                        |\n| ----- | ------------------- | -------------------------------------------------- |\n| codec | \u003ccode\u003estring\u003c/code\u003e | a codec string (av01.P.LLT.DD eg. \"av01.P.LLT.DD\") |\n\n\u003ca name=\"module_avc\"\u003e\u003c/a\u003e\n\n## avc\n\n- [avc](#module_avc)\n  - [.AVC_PROFILES](#module_avc.AVC_PROFILES) : [\u003ccode\u003eArray.\u0026lt;VCProfileItem\u0026gt;\u003c/code\u003e](#VCProfileItem)\n  - [.AVC_LEVELS](#module_avc.AVC_LEVELS) : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n  - [.getAllItems()](#module_avc.getAllItems) ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n  - [.getCodec(options)](#module_avc.getCodec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n  - [.getCodecName(codec)](#module_avc.getCodecName) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\n\u003ca name=\"module_avc.AVC_PROFILES\"\u003e\u003c/a\u003e\n\n### avc.AVC_PROFILES : [\u003ccode\u003eArray.\u0026lt;VCProfileItem\u0026gt;\u003c/code\u003e](#VCProfileItem)\n\nList of profiles with their profile numbers (PP) and the constraints component (CC).\n\n**Kind**: static constant of [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n\u003ca name=\"module_avc.AVC_LEVELS\"\u003e\u003c/a\u003e\n\n### avc.AVC_LEVELS : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n\nAVC Levels\n\n**Kind**: static constant of [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n**See**: [wikipedia.org](https://en.wikipedia.org/wiki/Advanced_Video_Coding#Levels)\n\u003ca name=\"module_avc.getAllItems\"\u003e\u003c/a\u003e\n\n### avc.getAllItems() ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n\nReturn a list of all possible codec parameter string and their human readable names\n\n**Kind**: static method of [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n\u003ca name=\"module_avc.getCodec\"\u003e\u003c/a\u003e\n\n### avc.getCodec(options) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec parameter string\n\n**Kind**: static method of [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n\n| Param   | Type                                             |\n| ------- | ------------------------------------------------ |\n| options | [\u003ccode\u003eAVCCodecOptions\u003c/code\u003e](#AVCCodecOptions) |\n\n\u003ca name=\"module_avc.getCodecName\"\u003e\u003c/a\u003e\n\n### avc.getCodecName(codec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec human readbable name\n\n**Kind**: static method of [\u003ccode\u003eavc\u003c/code\u003e](#module_avc)\n\n| Param | Type                | Description                                        |\n| ----- | ------------------- | -------------------------------------------------- |\n| codec | \u003ccode\u003estring\u003c/code\u003e | a codec string (cccc.PP.LL.DD eg. \"vp09.00.10.08\") |\n\n\u003ca name=\"module_hevc\"\u003e\u003c/a\u003e\n\n## hevc\n\n- [hevc](#module_hevc)\n  - [.HEVC_PROFILES](#module_hevc.HEVC_PROFILES) : [\u003ccode\u003eArray.\u0026lt;VCProfileItem\u0026gt;\u003c/code\u003e](#VCProfileItem)\n  - [.HEVC_PROFILE_COMPATIBILITY](#module_hevc.HEVC_PROFILE_COMPATIBILITY) : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n  - [.HEVC_LEVELS](#module_hevc.HEVC_LEVELS) : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n  - [.HEVC_TIER](#module_hevc.HEVC_TIER) : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n  - [.getAllItems()](#module_hevc.getAllItems) ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n  - [.getCodec(options)](#module_hevc.getCodec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n  - [.getCodecName(codec)](#module_hevc.getCodecName) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\n\u003ca name=\"module_hevc.HEVC_PROFILES\"\u003e\u003c/a\u003e\n\n### hevc.HEVC_PROFILES : [\u003ccode\u003eArray.\u0026lt;VCProfileItem\u0026gt;\u003c/code\u003e](#VCProfileItem)\n\nList of profiles with their profile numbers (PP) and the compatibility (C).\n\nSee Annexe 3 Profiles\n\n**Kind**: static constant of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\u003ca name=\"module_hevc.HEVC_PROFILE_COMPATIBILITY\"\u003e\u003c/a\u003e\n\n### hevc.HEVC_PROFILE_COMPATIBILITY : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n\nHEVC Profile Compatibility as a number in the 0..32 range\nTODO: is that correct\n\n**Kind**: static constant of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\u003ca name=\"module_hevc.HEVC_LEVELS\"\u003e\u003c/a\u003e\n\n### hevc.HEVC_LEVELS : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n\nHEVC Levels\n\n**Kind**: static constant of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n**See**: [hevc-levels](https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Tiers_and_levels)\n\u003ca name=\"module_hevc.HEVC_TIER\"\u003e\u003c/a\u003e\n\n### hevc.HEVC_TIER : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n\nList of supported tier\n\n**Kind**: static constant of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\u003ca name=\"module_hevc.getAllItems\"\u003e\u003c/a\u003e\n\n### hevc.getAllItems() ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n\nReturn a list of all possible codec parameter string and their human readable names\n\n**Kind**: static method of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\u003ca name=\"module_hevc.getCodec\"\u003e\u003c/a\u003e\n\n### hevc.getCodec(options) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec parameter string\n\n**Kind**: static method of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\n| Param   | Type                                               |\n| ------- | -------------------------------------------------- |\n| options | [\u003ccode\u003eHEVCCodecOptions\u003c/code\u003e](#HEVCCodecOptions) |\n\n\u003ca name=\"module_hevc.getCodecName\"\u003e\u003c/a\u003e\n\n### hevc.getCodecName(codec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec human readbable name\n\n**Kind**: static method of [\u003ccode\u003ehevc\u003c/code\u003e](#module_hevc)\n\n| Param | Type                | Description                                             |\n| ----- | ------------------- | ------------------------------------------------------- |\n| codec | \u003ccode\u003estring\u003c/code\u003e | a codec string (cccc.PP.C.TLL.CC eg. \"hev1.1.3.H34.B0\") |\n\n\u003ca name=\"module_vp\"\u003e\u003c/a\u003e\n\n## vp\n\n- [vp](#module_vp)\n  - [.VP_CODECS](#module_vp.VP_CODECS) : [\u003ccode\u003eArray.\u0026lt;CodecItem\u0026gt;\u003c/code\u003e](#CodecItem)\n  - [.VP_PROFILES](#module_vp.VP_PROFILES) : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n  - [.VP_LEVELS](#module_vp.VP_LEVELS) : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n  - [.VP_BIT_DEPTH](#module_vp.VP_BIT_DEPTH) : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n  - [.getAllItems()](#module_vp.getAllItems) ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n  - [.getCodec(options)](#module_vp.getCodec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n  - [.getCodecName(codec)](#module_vp.getCodecName) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\n\u003ca name=\"module_vp.VP_CODECS\"\u003e\u003c/a\u003e\n\n### vp.VP_CODECS : [\u003ccode\u003eArray.\u0026lt;CodecItem\u0026gt;\u003c/code\u003e](#CodecItem)\n\nList of codecs\n\n**Kind**: static constant of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\u003ca name=\"module_vp.VP_PROFILES\"\u003e\u003c/a\u003e\n\n### vp.VP_PROFILES : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n\nList of VP profiles numbers\n\n**Kind**: static constant of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\u003ca name=\"module_vp.VP_LEVELS\"\u003e\u003c/a\u003e\n\n### vp.VP_LEVELS : \u003ccode\u003eArray.\u0026lt;string\u0026gt;\u003c/code\u003e\n\nVP Levels\n\n**Kind**: static constant of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n**See**: [webmproject.org](https://www.webmproject.org/vp9/mp4/)\n\u003ca name=\"module_vp.VP_BIT_DEPTH\"\u003e\u003c/a\u003e\n\n### vp.VP_BIT_DEPTH : \u003ccode\u003eArray.\u0026lt;number\u0026gt;\u003c/code\u003e\n\nList of supported bit depth\n\n**Kind**: static constant of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\u003ca name=\"module_vp.getAllItems\"\u003e\u003c/a\u003e\n\n### vp.getAllItems() ⇒ [\u003ccode\u003eArray.\u0026lt;MediaCodecItem\u0026gt;\u003c/code\u003e](#MediaCodecItem)\n\nReturn a list of all possible codec parameter string and their human readable names\n\n**Kind**: static method of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\u003ca name=\"module_vp.getCodec\"\u003e\u003c/a\u003e\n\n### vp.getCodec(options) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec parameter string\n\n**Kind**: static method of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\n| Param   | Type                                           |\n| ------- | ---------------------------------------------- |\n| options | [\u003ccode\u003eVPCodecOptions\u003c/code\u003e](#VPCodecOptions) |\n\n\u003ca name=\"module_vp.getCodecName\"\u003e\u003c/a\u003e\n\n### vp.getCodecName(codec) ⇒ \u003ccode\u003estring\u003c/code\u003e\n\nGet a codec human readbable name\n\n**Kind**: static method of [\u003ccode\u003evp\u003c/code\u003e](#module_vp)\n\n| Param | Type                | Description                                      |\n| ----- | ------------------- | ------------------------------------------------ |\n| codec | \u003ccode\u003estring\u003c/code\u003e | a codec string (avc1[.PPCCLL] eg. \"avc1.640028\") |\n\n\u003ca name=\"AVProfileItem\"\u003e\u003c/a\u003e\n\n## AVProfileItem : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name | Type                | Description                   |\n| ---- | ------------------- | ----------------------------- |\n| name | \u003ccode\u003estring\u003c/code\u003e |                               |\n| PP   | \u003ccode\u003estring\u003c/code\u003e | profile numbers (seq_profile) |\n\n\u003ca name=\"VCProfileItem\"\u003e\u003c/a\u003e\n\n## VCProfileItem : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name | Type                | Description                         |\n| ---- | ------------------- | ----------------------------------- |\n| name | \u003ccode\u003estring\u003c/code\u003e |                                     |\n| PP   | \u003ccode\u003estring\u003c/code\u003e | profile numbers as hex string       |\n| CC   | \u003ccode\u003estring\u003c/code\u003e | constraints component as hex string |\n\n\u003ca name=\"CodecItem\"\u003e\u003c/a\u003e\n\n## CodecItem : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name | Type                | Description                         |\n| ---- | ------------------- | ----------------------------------- |\n| name | \u003ccode\u003estring\u003c/code\u003e |                                     |\n| cccc | \u003ccode\u003estring\u003c/code\u003e | the four-character ID for the codec |\n\n\u003ca name=\"MediaCodecItem\"\u003e\u003c/a\u003e\n\n## MediaCodecItem : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name  | Type                |\n| ----- | ------------------- |\n| name  | \u003ccode\u003estring\u003c/code\u003e |\n| codec | \u003ccode\u003estring\u003c/code\u003e |\n\n\u003ca name=\"VPCodecOptions\"\u003e\u003c/a\u003e\n\n## VPCodecOptions : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name     | Type                | Description                               |\n| -------- | ------------------- | ----------------------------------------- |\n| name     | \u003ccode\u003estring\u003c/code\u003e | Human readable codec name: \"VP8\" or \"VP9\" |\n| profile  | \u003ccode\u003enumber\u003c/code\u003e | 0, 1, 2 or 3                              |\n| level    | \u003ccode\u003estring\u003c/code\u003e |                                           |\n| bitDepth | \u003ccode\u003enumber\u003c/code\u003e |                                           |\n\n\u003ca name=\"AVCodecOptions\"\u003e\u003c/a\u003e\n\n## AVCodecOptions : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name     | Type                | Description                                                     |\n| -------- | ------------------- | --------------------------------------------------------------- |\n| name     | \u003ccode\u003estring\u003c/code\u003e | Human readable codec name: \"AV1\", potentially AV2 in the future |\n| profile  | \u003ccode\u003estring\u003c/code\u003e | AV profile name: \"Main\", \"High\" or \"Professional\"               |\n| level    | \u003ccode\u003estring\u003c/code\u003e |                                                                 |\n| tier     | \u003ccode\u003estring\u003c/code\u003e | \"Main\" or \"High\"                                                |\n| bitDepth | \u003ccode\u003enumber\u003c/code\u003e | 8, 10 or 12                                                     |\n\n\u003ca name=\"AVCCodecOptions\"\u003e\u003c/a\u003e\n\n## AVCCodecOptions : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name    | Type                | Description                       |\n| ------- | ------------------- | --------------------------------- |\n| profile | \u003ccode\u003estring\u003c/code\u003e | AVC profile name (eg. \"Baseline\") |\n| level   | \u003ccode\u003estring\u003c/code\u003e |                                   |\n\n\u003ca name=\"HEVCCodecOptions\"\u003e\u003c/a\u003e\n\n## HEVCCodecOptions : \u003ccode\u003eobject\u003c/code\u003e\n\n**Kind**: global typedef\n**Properties**\n\n| Name          | Type                | Description                       |\n| ------------- | ------------------- | --------------------------------- |\n| profile       | \u003ccode\u003estring\u003c/code\u003e | HEVC profile name (eg. \"Main 10\") |\n| compatibility | \u003ccode\u003enumber\u003c/code\u003e |                                   |\n| level         | \u003ccode\u003estring\u003c/code\u003e |                                   |\n| tier          | \u003ccode\u003estring\u003c/code\u003e | \"Main\" or \"High\"                  |\n| constraint    | \u003ccode\u003estring\u003c/code\u003e | TODO                              |\n\n\u003c!-- api-end --\u003e\n\n## License\n\nMIT. See [license file](https://github.com/dmnsgn/media-codecs/blob/main/LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmnsgn%2Fmedia-codecs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmnsgn%2Fmedia-codecs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmnsgn%2Fmedia-codecs/lists"}