mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-19 17:50:03 -08:00
change repository owner (#1801)
This commit is contained in:
parent
a14246d776
commit
39c072edd6
96 changed files with 185 additions and 188 deletions
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
|
|
@ -2,5 +2,5 @@ blank_issues_enabled: false
|
||||||
|
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: Question
|
- name: Question
|
||||||
url: https://github.com/aler9/mediamtx/discussions/new
|
url: https://github.com/bluenviron/mediamtx/discussions/new
|
||||||
about: Ask the community for help
|
about: Ask the community for help
|
||||||
|
|
|
||||||
4
.github/workflows/issue-lint.yml
vendored
4
.github/workflows/issue-lint.yml
vendored
|
|
@ -1,11 +1,11 @@
|
||||||
name: issue-link
|
name: issue-lint
|
||||||
|
|
||||||
on:
|
on:
|
||||||
issues:
|
issues:
|
||||||
types: [opened]
|
types: [opened]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
issue-link:
|
issue-lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
|
||||||
28
README.md
28
README.md
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
[_MediaMTX_](#important-announcement) / _rtsp-simple-server_ is a ready-to-use and zero-dependency server and proxy that allows users to publish, read and proxy live video and audio streams.
|
_MediaMTX_/ [_rtsp-simple-server_](#note-about-rtsp-simple-server) is a ready-to-use and zero-dependency server and proxy that allows users to publish, read and proxy live video and audio streams.
|
||||||
|
|
||||||
Live streams can be published to the server with:
|
Live streams can be published to the server with:
|
||||||
|
|
||||||
|
|
@ -44,20 +44,16 @@ Features:
|
||||||
* Natively compatible with the Raspberry Pi Camera
|
* Natively compatible with the Raspberry Pi Camera
|
||||||
* Compatible with Linux, Windows and macOS, does not require any dependency or interpreter, it's a single executable
|
* Compatible with Linux, Windows and macOS, does not require any dependency or interpreter, it's a single executable
|
||||||
|
|
||||||
[](https://github.com/aler9/mediamtx/actions?query=workflow:test)
|
[](https://github.com/bluenviron/mediamtx/actions?query=workflow:test)
|
||||||
[](https://github.com/aler9/mediamtx/actions?query=workflow:lint)
|
[](https://github.com/bluenviron/mediamtx/actions?query=workflow:lint)
|
||||||
[](https://app.codecov.io/gh/aler9/mediamtx/branch/main)
|
[](https://app.codecov.io/gh/bluenviron/mediamtx/branch/main)
|
||||||
[](https://github.com/aler9/mediamtx/releases)
|
[](https://github.com/bluenviron/mediamtx/releases)
|
||||||
[](https://hub.docker.com/r/aler9/rtsp-simple-server)
|
[](https://hub.docker.com/r/aler9/rtsp-simple-server)
|
||||||
[](https://aler9.github.io/mediamtx)
|
[](https://aler9.github.io/mediamtx)
|
||||||
|
|
||||||
## Important announcement
|
## Note about rtsp-simple-server
|
||||||
|
|
||||||
_rtsp-simple-server_ is being rebranded as _MediaMTX_. The reason is pretty obvious: this project started as a RTSP server but has evolved into a much more versatile media server (i like to call it a "media broker", a message broker for media streams), that is not tied to the RTSP protocol anymore. Nothing will change regarding license, features and backward compatibility.
|
_rtsp-simple-server_ has been rebranded as _MediaMTX_. The reason is pretty obvious: this project started as a RTSP server but has evolved into a much more versatile media server (i like to call it a "media broker", a message broker for media streams), that is not tied to the RTSP protocol anymore. Nothing will change regarding license, features and backward compatibility.
|
||||||
|
|
||||||
Furthermore, my main open source projects are being transferred to the [bluenviron organization](https://github.com/bluenviron), in order to allow the community to maintain and evolve the code regardless of my personal availability.
|
|
||||||
|
|
||||||
In the next months, the repository name and the Docker image name will be changed accordingly.
|
|
||||||
|
|
||||||
## Table of contents
|
## Table of contents
|
||||||
|
|
||||||
|
|
@ -120,7 +116,7 @@ In the next months, the repository name and the Docker image name will be change
|
||||||
|
|
||||||
### Standard
|
### Standard
|
||||||
|
|
||||||
1. Download and extract a precompiled binary from the [release page](https://github.com/aler9/mediamtx/releases).
|
1. Download and extract a precompiled binary from the [release page](https://github.com/bluenviron/mediamtx/releases).
|
||||||
|
|
||||||
2. Start the server:
|
2. Start the server:
|
||||||
|
|
||||||
|
|
@ -142,7 +138,7 @@ The `--network=host` flag is mandatory since Docker can change the source port o
|
||||||
docker run --rm -it -e MTX_PROTOCOLS=tcp -p 8554:8554 -p 1935:1935 -p 8888:8888 -p 8889:8889 aler9/rtsp-simple-server
|
docker run --rm -it -e MTX_PROTOCOLS=tcp -p 8554:8554 -p 1935:1935 -p 8888:8888 -p 8889:8889 aler9/rtsp-simple-server
|
||||||
```
|
```
|
||||||
|
|
||||||
Please keep in mind that the Docker image doesn't include _FFmpeg_. if you need to use _FFmpeg_ for an external command or anything else, you need to build a Docker image that contains both _rtsp-simple-server_ and _FFmpeg_, by following instructions [here](https://github.com/aler9/mediamtx/discussions/278#discussioncomment-549104).
|
Please keep in mind that the Docker image doesn't include _FFmpeg_. if you need to use _FFmpeg_ for an external command or anything else, you need to build a Docker image that contains both _rtsp-simple-server_ and _FFmpeg_, by following instructions [here](https://github.com/bluenviron/mediamtx/discussions/278#discussioncomment-549104).
|
||||||
|
|
||||||
### OpenWRT
|
### OpenWRT
|
||||||
|
|
||||||
|
|
@ -160,8 +156,8 @@ Please keep in mind that the Docker image doesn't include _FFmpeg_. if you need
|
||||||
|
|
||||||
```
|
```
|
||||||
mkdir package/mediamtx
|
mkdir package/mediamtx
|
||||||
wget -O package/mediamtx/Makefile https://raw.githubusercontent.com/aler9/mediamtx/main/openwrt.mk
|
wget -O package/mediamtx/Makefile https://raw.githubusercontent.com/bluenviron/mediamtx/main/openwrt.mk
|
||||||
sed -i "s/v0.0.0/$(git ls-remote --tags --sort=v:refname https://github.com/aler9/mediamtx | tail -n1 | sed 's/.*\///; s/\^{}//')/" package/mediamtx/Makefile
|
sed -i "s/v0.0.0/$(git ls-remote --tags --sort=v:refname https://github.com/bluenviron/mediamtx | tail -n1 | sed 's/.*\///; s/\^{}//')/" package/mediamtx/Makefile
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Compile the server:
|
4. Compile the server:
|
||||||
|
|
@ -434,7 +430,7 @@ The command inserted into `runOnDemand` will start only when a client requests t
|
||||||
|
|
||||||
Systemd is the service manager used by Ubuntu, Debian and many other Linux distributions, and allows to launch _MediaMTX_ on boot.
|
Systemd is the service manager used by Ubuntu, Debian and many other Linux distributions, and allows to launch _MediaMTX_ on boot.
|
||||||
|
|
||||||
Download a release bundle from the [release page](https://github.com/aler9/mediamtx/releases), unzip it, and move the executable and configuration in the system:
|
Download a release bundle from the [release page](https://github.com/bluenviron/mediamtx/releases), unzip it, and move the executable and configuration in the system:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo mv mediamtx /usr/local/bin/
|
sudo mv mediamtx /usr/local/bin/
|
||||||
|
|
|
||||||
2
go.mod
2
go.mod
|
|
@ -1,4 +1,4 @@
|
||||||
module github.com/aler9/mediamtx
|
module github.com/bluenviron/mediamtx
|
||||||
|
|
||||||
go 1.20
|
go 1.20
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3"
|
"github.com/bluenviron/gortsplib/v3"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf/decrypt"
|
"github.com/bluenviron/mediamtx/internal/conf/decrypt"
|
||||||
"github.com/aler9/mediamtx/internal/conf/env"
|
"github.com/bluenviron/mediamtx/internal/conf/env"
|
||||||
"github.com/aler9/mediamtx/internal/conf/yaml"
|
"github.com/bluenviron/mediamtx/internal/conf/yaml"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getSortedKeys(paths map[string]*PathConf) []string {
|
func getSortedKeys(paths map[string]*PathConf) []string {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"golang.org/x/crypto/nacl/secretbox"
|
"golang.org/x/crypto/nacl/secretbox"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func writeTempFile(byts []byte) (string, error) {
|
func writeTempFile(byts []byte) (string, error) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// LogDestinations is the logDestionations parameter.
|
// LogDestinations is the logDestionations parameter.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// LogLevel is the logLevel parameter.
|
// LogLevel is the logLevel parameter.
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func interfaceIsEmpty(i interface{}) bool {
|
func interfaceIsEmpty(i interface{}) bool {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testFormatH264 = &formats.H264{
|
var testFormatH264 = &formats.H264{
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
func sha256Base64(in string) string {
|
func sha256Base64(in string) string {
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,12 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3"
|
"github.com/bluenviron/gortsplib/v3"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/confwatcher"
|
"github.com/bluenviron/mediamtx/internal/confwatcher"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
"github.com/aler9/mediamtx/internal/rlimit"
|
"github.com/bluenviron/mediamtx/internal/rlimit"
|
||||||
"github.com/aler9/mediamtx/internal/rpicamera"
|
"github.com/bluenviron/mediamtx/internal/rpicamera"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "v0.0.0"
|
var version = "v0.0.0"
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import (
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type hlsHTTPServerParent interface {
|
type hlsHTTPServerParent interface {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type nilWriter struct{}
|
type nilWriter struct{}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import (
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/bluenviron/gohlslib"
|
||||||
"github.com/bluenviron/gohlslib/pkg/codecs"
|
"github.com/bluenviron/gohlslib/pkg/codecs"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
|
|
@ -22,10 +23,9 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
"github.com/bluenviron/gohlslib"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type hlsSourceParent interface {
|
type hlsSourceParent interface {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type httpLoggerWriter struct {
|
type httpLoggerWriter struct {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package core
|
||||||
import (
|
import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
func httpSetTrustedProxies(router *gin.Engine, trustedProxies conf.IPsOrCIDRs) {
|
func httpSetTrustedProxies(router *gin.Engine, trustedProxies conf.IPsOrCIDRs) {
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import (
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func metric(key string, tags string, value int64) string {
|
func metric(key string, tags string, value int64) string {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMetrics(t *testing.T) {
|
func TestMetrics(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newEmptyTimer() *time.Timer {
|
func newEmptyTimer() *time.Timer {
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func pathConfCanBeUpdated(oldPathConf *conf.PathConf, newPathConf *conf.PathConf) bool {
|
func pathConfCanBeUpdated(oldPathConf *conf.PathConf, newPathConf *conf.PathConf) bool {
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ import (
|
||||||
// start pprof
|
// start pprof
|
||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pprofParent interface {
|
type pprofParent interface {
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
"github.com/aler9/mediamtx/internal/rpicamera"
|
"github.com/bluenviron/mediamtx/internal/rpicamera"
|
||||||
)
|
)
|
||||||
|
|
||||||
func paramsFromConf(cnf *conf.PathConf) rpicamera.Params {
|
func paramsFromConf(cnf *conf.PathConf) rpicamera.Params {
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,13 @@ import (
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/h264conf"
|
"github.com/bluenviron/mediamtx/internal/rtmp/h264conf"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ import (
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type rtmpServerAPIConnsListItem struct {
|
type rtmpServerAPIConnsListItem struct {
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRTMPServerRunOnConnect(t *testing.T) {
|
func TestRTMPServerRunOnConnect(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
type rtmpSourceParent interface {
|
type rtmpSourceParent interface {
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ import (
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp"
|
"github.com/bluenviron/mediamtx/internal/rtmp"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRTMPSource(t *testing.T) {
|
func TestRTMPSource(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/liberrors"
|
"github.com/bluenviron/gortsplib/v3/pkg/liberrors"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type rtspServerAPIConnsListItem struct {
|
type rtspServerAPIConnsListItem struct {
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ import (
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/externalcmd"
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type rtspSessionPathManager interface {
|
type rtspSessionPathManager interface {
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
"github.com/bluenviron/gortsplib/v3/pkg/headers"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
||||||
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type rtspSourceParent interface {
|
type rtspSourceParent interface {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import (
|
||||||
|
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// source is an entity that can provide a stream.
|
// source is an entity that can provide a stream.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package core
|
package core
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// sourceRedirect is a source that redirects to another one.
|
// sourceRedirect is a source that redirects to another one.
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
)
|
)
|
||||||
|
|
||||||
type stream struct {
|
type stream struct {
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type streamFormat struct {
|
type streamFormat struct {
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/formats/mpegts"
|
"github.com/bluenviron/mediacommon/pkg/formats/mpegts"
|
||||||
"golang.org/x/net/ipv4"
|
"golang.org/x/net/ipv4"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import (
|
||||||
"github.com/pion/sdp/v3"
|
"github.com/pion/sdp/v3"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed webrtc_publish_index.html
|
//go:embed webrtc_publish_index.html
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import (
|
||||||
"github.com/pion/ice/v2"
|
"github.com/pion/ice/v2"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/conf"
|
"github.com/bluenviron/mediamtx/internal/conf"
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func iceServersToLinkHeader(iceServers []webrtc.ICEServer) []string {
|
func iceServersToLinkHeader(iceServers []webrtc.ICEServer) []string {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/formatprocessor"
|
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpav1"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpav1"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtph264"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtph264"
|
||||||
|
|
@ -14,6 +13,8 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
"github.com/bluenviron/gortsplib/v3/pkg/media"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/ringbuffer"
|
"github.com/bluenviron/gortsplib/v3/pkg/ringbuffer"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
|
"github.com/bluenviron/mediamtx/internal/formatprocessor"
|
||||||
)
|
)
|
||||||
|
|
||||||
type webRTCOutgoingTrack struct {
|
type webRTCOutgoingTrack struct {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/pion/interceptor"
|
"github.com/pion/interceptor"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
type peerConnection struct {
|
type peerConnection struct {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import (
|
||||||
"github.com/pion/sdp/v3"
|
"github.com/pion/sdp/v3"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/av1"
|
"github.com/bluenviron/mediacommon/pkg/codecs/av1"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitAV1 is an AV1 data unit.
|
// UnitAV1 is an AV1 data unit.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitGeneric is a generic data unit.
|
// UnitGeneric is a generic data unit.
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/h264"
|
"github.com/bluenviron/mediacommon/pkg/codecs/h264"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// extract SPS and PPS without decoding RTP packets
|
// extract SPS and PPS without decoding RTP packets
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/h265"
|
"github.com/bluenviron/mediacommon/pkg/codecs/h265"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// extract VPS, SPS and PPS without decoding RTP packets
|
// extract VPS, SPS and PPS without decoding RTP packets
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpmpeg2audio"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpmpeg2audio"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitMPEG2Audio is a MPEG-2 Audio data unit.
|
// UnitMPEG2Audio is a MPEG-2 Audio data unit.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpmpeg4audio"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpmpeg4audio"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitMPEG4Audio is a MPEG-4 Audio data unit.
|
// UnitMPEG4Audio is a MPEG-4 Audio data unit.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpsimpleaudio"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpsimpleaudio"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitOpus is a Opus data unit.
|
// UnitOpus is a Opus data unit.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpvp8"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpvp8"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitVP8 is a VP8 data unit.
|
// UnitVP8 is a VP8 data unit.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpvp9"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats/rtpvp9"
|
||||||
"github.com/pion/rtp"
|
"github.com/pion/rtp"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/logger"
|
"github.com/bluenviron/mediamtx/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UnitVP9 is a VP9 data unit.
|
// UnitVP9 is a VP9 data unit.
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/core"
|
"github.com/bluenviron/mediamtx/internal/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
var serverCert = []byte(`-----BEGIN CERTIFICATE-----
|
var serverCert = []byte(`-----BEGIN CERTIFICATE-----
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,10 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/handshake"
|
"github.com/bluenviron/mediamtx/internal/rtmp/handshake"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/tracks"
|
"github.com/bluenviron/mediamtx/internal/rtmp/tracks"
|
||||||
)
|
)
|
||||||
|
|
||||||
func resultIsOK1(res *message.CommandAMF0) bool {
|
func resultIsOK1(res *message.CommandAMF0) bool {
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ import (
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/handshake"
|
"github.com/bluenviron/mediamtx/internal/rtmp/handshake"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestInitializeClient(t *testing.T) {
|
func TestInitializeClient(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Acknowledge is an acknowledgement message.
|
// Acknowledge is an acknowledgement message.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import (
|
||||||
|
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CommandAMF0 is a AMF0 command message.
|
// CommandAMF0 is a AMF0 command message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DataAMF0 is a AMF0 data message.
|
// DataAMF0 is a AMF0 data message.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedCodedFrames is a CodedFrames extended message.
|
// ExtendedCodedFrames is a CodedFrames extended message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedFramesX is a FramesX extended message.
|
// ExtendedFramesX is a FramesX extended message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedMetadata is a metadata extended message.
|
// ExtendedMetadata is a metadata extended message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedMPEG2TSSequenceStart is a MPEG2-TS sequence start extended message.
|
// ExtendedMPEG2TSSequenceStart is a MPEG2-TS sequence start extended message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedSequenceEnd is a sequence end extended message.
|
// ExtendedSequenceEnd is a sequence end extended message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExtendedSequenceStart is a sequence start extended message.
|
// ExtendedSequenceStart is a sequence start extended message.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
package message
|
package message
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ package message
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
func allocateMessage(raw *rawmessage.Message) (Message, error) {
|
func allocateMessage(raw *rawmessage.Message) (Message, error) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
)
|
)
|
||||||
|
|
||||||
var readWriterCases = []struct {
|
var readWriterCases = []struct {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package message
|
package message
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ReadWriter is a message reader/writer.
|
// ReadWriter is a message reader/writer.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
)
|
)
|
||||||
|
|
||||||
type duplexRW struct {
|
type duplexRW struct {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetChunkSize is a set chunk size message.
|
// SetChunkSize is a set chunk size message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetPeerBandwidth is a set peer bandwidth message.
|
// SetPeerBandwidth is a set peer bandwidth message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetWindowAckSize is a set window acknowledgement message.
|
// SetWindowAckSize is a set window acknowledgement message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlPingRequest is a user control message.
|
// UserControlPingRequest is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlPingResponse is a user control message.
|
// UserControlPingResponse is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlSetBufferLength is a user control message.
|
// UserControlSetBufferLength is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlStreamBegin is a user control message.
|
// UserControlStreamBegin is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlStreamDry is a user control message.
|
// UserControlStreamDry is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlStreamEOF is a user control message.
|
// UserControlStreamEOF is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package message //nolint:dupl
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserControlStreamIsRecorded is a user control message.
|
// UserControlStreamIsRecorded is a user control message.
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import (
|
||||||
|
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package message
|
package message
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/rawmessage"
|
"github.com/bluenviron/mediamtx/internal/rtmp/rawmessage"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Writer is a message writer.
|
// Writer is a message writer.
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWriter(t *testing.T) {
|
func TestWriter(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/chunk"
|
"github.com/bluenviron/mediamtx/internal/rtmp/chunk"
|
||||||
)
|
)
|
||||||
|
|
||||||
var errMoreChunksNeeded = errors.New("more chunks are needed")
|
var errMoreChunksNeeded = errors.New("more chunks are needed")
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/chunk"
|
"github.com/bluenviron/mediamtx/internal/rtmp/chunk"
|
||||||
)
|
)
|
||||||
|
|
||||||
var cases = []struct {
|
var cases = []struct {
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/chunk"
|
"github.com/bluenviron/mediamtx/internal/rtmp/chunk"
|
||||||
)
|
)
|
||||||
|
|
||||||
type writerChunkStream struct {
|
type writerChunkStream struct {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/chunk"
|
"github.com/bluenviron/mediamtx/internal/rtmp/chunk"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@ import (
|
||||||
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/h264conf"
|
"github.com/bluenviron/mediamtx/internal/rtmp/h264conf"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func h265FindNALU(array []gomp4.HEVCNaluArray, typ h265.NALUType) []byte {
|
func h265FindNALU(array []gomp4.HEVCNaluArray, typ h265.NALUType) []byte {
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ import (
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/h264conf"
|
"github.com/bluenviron/mediamtx/internal/rtmp/h264conf"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRead(t *testing.T) {
|
func TestRead(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ import (
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
"github.com/bluenviron/gortsplib/v3/pkg/formats"
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/h264conf"
|
"github.com/bluenviron/mediamtx/internal/rtmp/h264conf"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Write writes track informations.
|
// Write writes track informations.
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ import (
|
||||||
"github.com/notedit/rtmp/format/flv/flvio"
|
"github.com/notedit/rtmp/format/flv/flvio"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/bytecounter"
|
"github.com/bluenviron/mediamtx/internal/rtmp/bytecounter"
|
||||||
"github.com/aler9/mediamtx/internal/rtmp/message"
|
"github.com/bluenviron/mediamtx/internal/rtmp/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWrite(t *testing.T) {
|
func TestWrite(t *testing.T) {
|
||||||
|
|
|
||||||
2
main.go
2
main.go
|
|
@ -4,7 +4,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/aler9/mediamtx/internal/core"
|
"github.com/bluenviron/mediamtx/internal/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,15 @@ PKG_VERSION:=v0.0.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/aler9/mediamtx
|
PKG_SOURCE_URL:=https://github.com/bluenviron/mediamtx
|
||||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=golang/host
|
PKG_BUILD_DEPENDS:=golang/host
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_USE_MIPS16:=0
|
PKG_USE_MIPS16:=0
|
||||||
|
|
||||||
GO_PKG:=github.com/aler9/mediamtx
|
GO_PKG:=github.com/bluenviron/mediamtx
|
||||||
GO_PKG_LDFLAGS_X:=github.com/aler9/mediamtx/internal/core.version=$(PKG_VERSION)
|
GO_PKG_LDFLAGS_X:=github.com/bluenviron/mediamtx/internal/core.version=$(PKG_VERSION)
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||||
|
|
@ -24,7 +24,7 @@ define Package/mediamtx
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=mediamtx
|
TITLE:=mediamtx
|
||||||
URL:=https://github.com/aler9/mediamtx
|
URL:=https://github.com/bluenviron/mediamtx
|
||||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,36 +26,36 @@ RUN mkdir tmp binaries
|
||||||
RUN cp mediamtx.yml LICENSE tmp/
|
RUN cp mediamtx.yml LICENSE tmp/
|
||||||
|
|
||||||
FROM build-base AS build-windows-amd64
|
FROM build-base AS build-windows-amd64
|
||||||
RUN GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx.exe
|
RUN GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx.exe
|
||||||
RUN cd tmp && zip -q ../binaries/mediamtx_$${VERSION}_windows_amd64.zip mediamtx.exe mediamtx.yml LICENSE
|
RUN cd tmp && zip -q ../binaries/mediamtx_$${VERSION}_windows_amd64.zip mediamtx.exe mediamtx.yml LICENSE
|
||||||
|
|
||||||
FROM build-base AS build-linux-amd64
|
FROM build-base AS build-linux-amd64
|
||||||
RUN GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
RUN GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_amd64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_amd64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
|
|
||||||
FROM build-base AS build-darwin-amd64
|
FROM build-base AS build-darwin-amd64
|
||||||
RUN GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
RUN GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_darwin_amd64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_darwin_amd64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
|
|
||||||
FROM build-base AS build-darwin-arm64
|
FROM build-base AS build-darwin-arm64
|
||||||
RUN GOOS=darwin GOARCH=arm64 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
RUN GOOS=darwin GOARCH=arm64 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_darwin_arm64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_darwin_arm64.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
|
|
||||||
FROM build-base AS build-linux-armv6
|
FROM build-base AS build-linux-armv6
|
||||||
COPY --from=rpicamera32 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
COPY --from=rpicamera32 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
||||||
RUN GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
RUN GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_armv6.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_armv6.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
RUN rm internal/rpicamera/exe/exe
|
RUN rm internal/rpicamera/exe/exe
|
||||||
|
|
||||||
FROM build-base AS build-linux-armv7
|
FROM build-base AS build-linux-armv7
|
||||||
COPY --from=rpicamera32 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
COPY --from=rpicamera32 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
||||||
RUN GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
RUN GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_armv7.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_armv7.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
RUN rm internal/rpicamera/exe/exe
|
RUN rm internal/rpicamera/exe/exe
|
||||||
|
|
||||||
FROM build-base AS build-linux-arm64
|
FROM build-base AS build-linux-arm64
|
||||||
COPY --from=rpicamera64 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
COPY --from=rpicamera64 /s/internal/rpicamera/exe/exe internal/rpicamera/exe/
|
||||||
RUN GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/aler9/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
RUN GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/bluenviron/mediamtx/internal/core.version=$$VERSION" -o tmp/mediamtx -tags rpicamera
|
||||||
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_arm64v8.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
RUN tar -C tmp -czf binaries/mediamtx_$${VERSION}_linux_arm64v8.tar.gz --owner=0 --group=0 mediamtx mediamtx.yml LICENSE
|
||||||
RUN rm internal/rpicamera/exe/exe
|
RUN rm internal/rpicamera/exe/exe
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue