{"id":35210115,"url":"https://github.com/dfpc-coe/media-infra","last_synced_at":"2026-04-29T00:01:40.813Z","repository":{"id":199783006,"uuid":"703747731","full_name":"dfpc-coe/media-infra","owner":"dfpc-coe","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-31T14:37:09.000Z","size":1511,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-31T16:33:24.566Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfpc-coe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ingalls"}},"created_at":"2023-10-11T20:44:23.000Z","updated_at":"2026-03-31T14:37:15.000Z","dependencies_parsed_at":"2024-04-30T17:33:24.436Z","dependency_job_id":"54ee5109-5fe6-4978-8dff-1e0c17920918","html_url":"https://github.com/dfpc-coe/media-infra","commit_stats":null,"previous_names":["dfpc-coe/media-infra"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/dfpc-coe/media-infra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfpc-coe%2Fmedia-infra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfpc-coe%2Fmedia-infra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfpc-coe%2Fmedia-infra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfpc-coe%2Fmedia-infra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfpc-coe","download_url":"https://codeload.github.com/dfpc-coe/media-infra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfpc-coe%2Fmedia-infra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32404340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-12-29T17:32:46.499Z","updated_at":"2026-04-29T00:01:40.809Z","avatar_url":"https://github.com/dfpc-coe.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ingalls"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=center\u003eTAK Media Server Infra\u003c/h1\u003e\n\n\u003cp align=center\u003eInfrastructure to support a TAK Compatible Media Server\u003c/p\u003e\n\n## Persistance\n\nMediaMTX currently does not persist API operations to the config file, as such the Dockerfile is bundled with a\npersistance script that will convert the API response and push it to the mediamtx.yml file on change\n\n## Ports\n\n| Port | Notes |\n| ---- | ----- |\n| 8554 | RTSP `rtsp://\u003cserver\u003e:8554/\u003cmystream\u003e` |\n| 8889 | WebRTC `http://\u003cserver\u003e:8889/\u003cmystream\u003e/publish` |\n| 8890 | SRT `srt://localhost:8890?streamid=publish:mystream\u0026pkt_size=1316` |\n\n## Local Development\n\nTo run the media server locally, you can use Docker. First ensure that you have a local CloudTAK instance running and then run:\n\n```sh\ndocker build -t mediamtx .\n```\n\n```\ndocker run --network='host' -e API_URL='http://localhost:5001' -e SigningSecret='\u003cSigningSecret\u003e' mediamtx:latest\n```\n\n## AWS Deployment\n\n### Media Deployment\n\nFrom the root directory, install the deploy dependencies\n\n```sh\nnpm install\n```\n\nDeployment to AWS is handled via AWS Cloudformation. The template can be found in the `./cloudformation`\ndirectory. The deployment itself is performed by [Deploy](https://github.com/openaddresses/deploy) which\nwas installed in the previous step.\n\nThe deploy tool can be run via the following\n\n```sh\nnpx deploy\n```\n\nTo install it globally - view the deploy [README](https://github.com/openaddresses/deploy)\n\nDeploy uses your existing AWS credentials. Ensure that your `~/.aws/credentials` has an entry like:\n\n```\n[coe]\naws_access_key_id = \u003credacted\u003e\naws_secret_access_key = \u003credacted\u003e\n```\n\nDeployment can then be performed via the following:\n\n```\nnpx deploy create \u003cstack\u003e\nnpx deploy update \u003cstack\u003e\nnpx deploy info \u003cstack\u003e --outputs\nnpx deploy info \u003cstack\u003e --parameters\n```\n\nStacks can be created, deleted, cancelled, etc all via the deploy tool. For further information\ninformation about `deploy` functionality run the following for help.\n\n```sh\nnpx deploy\n```\n\nFurther help about a specific command can be obtained via something like:\n\n```sh\nnpx deploy info --help\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfpc-coe%2Fmedia-infra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfpc-coe%2Fmedia-infra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfpc-coe%2Fmedia-infra/lists"}