Repository navigation
Releases: Mo3he/Axis_Cam_MediaMTX
Release list
MediaMTX 1.21.1
MediaMTX 1.21.1
Packages MediaMTX 1.21.1.
Upstream changes
https://github.com/bluenviron/mediamtx/releases/tag/v1.21.1
Changes
- Update to upstream 1.21.1.
Packages
Install the signed_*.eap matching your device architecture.
Full changelog: v1.21.0...v1.21.1
MediaMTX 1.21.0
MediaMTX 1.21.0
Packages MediaMTX 1.21.0.
Upstream changes
https://github.com/bluenviron/mediamtx/releases/tag/v1.21.0
Changes
- Update to upstream 1.21.0.
Packages
Install the signed_*.eap matching your device architecture.
Full changelog: v1.20.1...v1.21.0
MediaMTX 1.20.1
MediaMTX 1.20.1
Packages MediaMTX 1.20.1.
Upstream changes
https://github.com/bluenviron/mediamtx/releases/tag/v1.20.1
Changes
- Update to upstream 1.20.1.
- Strip the bundled
mediamtxbinary, which upstream ships unstripped. The
package is 16.7 MB instead of 29.0 MB. - Fixed: the shipped
recordPathpointed at
/var/spool/storage/areas/SD_DISK/MediaMTX/recordings, which is not the SD
card. Only.../SD_DISK/rootis the mounted card; the level above it belongs
to/var/spool, a RAM filesystem. Recordings were written to RAM, lost on
every reboot, and consumed device memory, while the storage figure reported
the size of the RAM disk so nothing looked wrong. The area is also named
HDD_DISKrather thanSD_DISKon recorder products, so no single default is
correct.recordPathnow ships unset, with both variants present as comments
to uncomment, and the Recordings page says so instead of reporting a
fabricated location. Existing installations keep their own configuration and
are not modified: check the line against the new
Recording storage section. - Fixed: with
recordFormat: mpegts, the Recordings page showed an empty
archive. Only.mp4segments were listed, so.tsrecordings could not be
browsed, downloaded or deleted even though they were being written correctly.
.tssegments are now listed and served asvideo/mp2t. The timeline, clip
export and inline playback remain unavailable for them, because MediaMTX's
playback server does not support MPEG-TS; the page now says so rather than
showing nothing.fmp4is still the default and the recommended format. - The bundled default configuration is regenerated from upstream 1.20.1. It had
been carried forward from an older release, so it still usedrunOnReady,
runOnNotReadyandrunOnReadyRestart, which MediaMTX renamed and now warns
about on every start, and it was missing settings added since. It also
predated the MoQ server, which meant MediaMTX enabled MoQ from its own default
with no line in the configuration to turn it off. - RTMP (
1935), SRT (8890/udp) and MoQ (8892,8893/udp) are now disabled
in the default configuration, so a fresh install no longer opens those ports.
Setrtmp,srtormoqtoyesto bring them back. Existing installations
keep their own configuration and are unaffected. - Removed the Raspberry Pi camera settings from the default configuration; that
source type cannot exist on an Axis device. - The
pathssection of the default configuration now carries worked examples:
the device's own sensor, the same with an explicit codec and resolution, and a
camera elsewhere on the network. It previously held only upstream's
source: rtsp://my_cameraplaceholder. - The README port table now matches what the package actually opens. It listed
the metrics and pprof servers, which are disabled, and omitted SRT, MoQ and
the WebRTC ICE port. - Fixed: the commented-out examples in the default configuration could not be
switched on the way they invited. They were written as# recordPath: ...,
so deleting the#left one space too many, the file no longer parsed, and
MediaMTX crash-looped withvalue is not allowed in this contextand no
indication of what was wrong. Every example is now written so that deleting
the#alone produces correctly indented YAML.webrtcICEServers2,
alwaysAvailableTracksandforwardreject an empty value, so they keep
their[]and their examples now say to replace that line instead. A test
uncomments every example and parses the result, so the trap cannot come back. - Fixed: pulled RTSP sources now use
rtspTransport: tcpinstead of upstream's
automatic, which prefers UDP. A camera pulling its own sensor over
127.0.0.1lost RTP packets, which corrupted the H.264 stream, logged
invalid FU-A packetandtoo many reordered frames, and restarted the
recorder every few seconds so recordings were split into fragments a few
seconds long. UDP never failed outright, so the fallback to TCP never
triggered.
Packages
Install the signed_*.eap matching your device architecture.
Full changelog: v1.20.0...v1.20.1
v1.20.0
Automated build packaging MediaMTX v1.20.0 for Axis cameras (aarch64 and armv7hf).
Upstream changes: https://github.com/bluenviron/mediamtx/releases/tag/v1.20.0
v1.19.3
Automated build packaging MediaMTX v1.19.3 for Axis cameras (aarch64 and armv7hf).
Upstream changes: https://github.com/bluenviron/mediamtx/releases/tag/v1.19.3
MediaMTX 1.19.2 (Signed)
These .eap packages are signed with the Axis ACAP signing service and install
normally on AXIS OS 12.10 and later.
Upgrading from an earlier version
Because the signing vendor changed, installing over a previously installed
unsigned version can fail with "Couldn't install: app". The device log
shows:
Vendor ID in manifest does not match the vendor ID of the previous version
To upgrade: back up your app configuration, uninstall the existing app,
then install this signed version.
v1.19.2-5
MediaMTX v1.19.2 for AXIS ACAP (aarch64 + armv7hf).
What's new
- AXIS OS 13 readiness. Rebuilt against ACAP Native SDK 12.10.0 (64-bit
time_t/ Y2038). - Manifest migrated to schema 2.0.0 with
vendorIdandcompatibleOsVersions(max 13). The build auto-injectsmin12.10.68; devices below 12.10 ignore the field, so installs still reach older firmware. config.cgilinked with a non-executable stack (-Wl,-z,noexecstack), required by OS 13.
Compatibility
- Still installs and runs on older AXIS OS (validated live on OS 11.11 and OS 12.10, aarch64).
- Web UI uses relative-path requests only, so it is HTTPS-only compatible with no mixed content.
Note: the package is not yet Axis ACAP Portal-signed. Unsigned packages still install below OS 13; portal signing will follow.
v1.19.2-4
MediaMTX v1.19.2 for AXIS ACAP (aarch64 + armv7hf).
What's new
- VMS-style playback timeline on the Recordings page: per-stream, per-day 24h timeline. Click a moment to play from that exact time (stitched seamlessly across segment files and over gaps), drag to select a range, and export it as a standard MP4.
- New
config.cgiendpoints (timeline,clip,streams) proxy the MediaMTX playback server on localhost, reusing admin auth and avoiding CORS/mixed-content. Raw query params are validated against request-line injection. config.cgiis now a multi-threaded FastCGI worker (4 workers), so a slow proxied stream no longer wedges other requests.- Default config enables the playback server on
127.0.0.1:9996(localhost only). Existing configs: addplayback: yesandplaybackAddress: 127.0.0.1:9996, then Save & Restart.
Validated live on an AXIS device (aarch64): timeline, fmp4 playback, MP4 export, injection guards, and concurrent requests all pass.
v1.19.2-3
Repackaging of MediaMTX v1.19.2 for Axis cameras (aarch64 and armv7hf).
Highlights since v1.19.2-2:
- Unified single-Dockerfile build (ARCH build-arg) replacing the per-arch trees.
- New Live page with HLS/WebRTC/RTSP links for configured paths.
- Config backup on every save with Load backup in the editor.
- Delete individual recordings and view recording-storage usage.
- Crash-loop protection: the supervisor backs off on repeated fast exits and the editor warns after a restart if the config crash-loops.
- Same-origin CSRF guard on state-changing requests; tightened socket permissions.
- Host unit tests and a CI workflow (tests + Docker build of both arches).
Upstream: https://github.com/bluenviron/mediamtx/releases/tag/v1.19.2
v1.19.2-2
Follow-up build of MediaMTX v1.19.2 (same MediaMTX version, ACAP wrapper fixes).
- Fix recordings/config pages hanging on Loading: the recordings list no longer scans every file for its duration (it was blocking the single-threaded backend for ~a minute with many recordings). The list is now instant.
- Ignore SIGPIPE and stop streaming when the client disconnects, so an aborted playback range request can no longer wedge the backend.
- Recordings table now shows Start and End time (with date) instead of Duration.