mirror of
https://github.com/aler9/rtsp-simple-server
synced 2025-09-27 03:56:15 +08:00
55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
// This is used for testing purposes.
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/bluenviron/gortsplib/v5"
|
|
"github.com/bluenviron/gortsplib/v5/pkg/description"
|
|
"github.com/bluenviron/gortsplib/v5/pkg/format"
|
|
)
|
|
|
|
func main() {
|
|
if os.Getenv("MTX_QUERY") != "param=value" {
|
|
panic("unexpected MTX_QUERY")
|
|
}
|
|
if os.Getenv("G1") != "on" {
|
|
panic("unexpected G1")
|
|
}
|
|
|
|
medi := &description.Media{
|
|
Type: description.MediaTypeVideo,
|
|
Formats: []format.Format{&format.H264{
|
|
PayloadTyp: 96,
|
|
SPS: []byte{
|
|
0x67, 0x42, 0xc0, 0x28, 0xd9, 0x00, 0x78, 0x02,
|
|
0x27, 0xe5, 0x84, 0x00, 0x00, 0x03, 0x00, 0x04,
|
|
0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c, 0x60, 0xc9, 0x20,
|
|
},
|
|
PPS: []byte{0x01, 0x02, 0x03, 0x04},
|
|
PacketizationMode: 1,
|
|
}},
|
|
}
|
|
|
|
source := gortsplib.Client{}
|
|
|
|
err := source.StartRecording(
|
|
"rtsp://localhost:"+os.Getenv("RTSP_PORT")+"/"+os.Getenv("MTX_PATH"),
|
|
&description.Session{Medias: []*description.Media{medi}})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer source.Close()
|
|
|
|
c := make(chan os.Signal, 1)
|
|
signal.Notify(c, syscall.SIGINT)
|
|
<-c
|
|
|
|
err = os.WriteFile(os.Getenv("ON_DEMAND"), []byte(""), 0o644)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|