diff --git a/writer/cmd/main.go b/writer/cmd/main.go index eef343f..897b60c 100644 --- a/writer/cmd/main.go +++ b/writer/cmd/main.go @@ -2,9 +2,10 @@ package main import ( "flag" + "fmt" "git.insit.tech/psa/rtsp_reader-writer/writer/internal/config" "git.insit.tech/psa/rtsp_reader-writer/writer/internal/ingest/rtsp" - "log" + "git.insit.tech/sas/rtsp_proxy/core/log" ) func main() { @@ -17,14 +18,16 @@ func main() { panic(err) } + Log := log.MainLogging("/home/psa/GoRepository/" + "/data/" + "camera54-centr-kirova-kalinina") + // Connect to each camera. for _, link := range cams { - log.Printf("process camera:\n %s\n", link) + fmt.Printf("process camera:\n %s\n", link) go func() { - err = rtsp.StartWriter(*directory, 60, link) + err = rtsp.StartWriter(*directory, 60, link, Log) if err != nil { - log.Printf("procRTSP function error for camera %s: %s", link, err.Error()) + fmt.Printf("procRTSP function error for camera %s: %s", link, err.Error()) } }() } diff --git a/writer/go.mod b/writer/go.mod index 046600c..c49301d 100644 --- a/writer/go.mod +++ b/writer/go.mod @@ -3,7 +3,7 @@ module git.insit.tech/psa/rtsp_reader-writer/writer go 1.24.1 require ( - git.insit.tech/sas/rtsp_proxy v0.0.0-20250325071536-7b97f96d64e6 + git.insit.tech/sas/rtsp_proxy v0.0.0-20250326040356-446f7f0578d9 github.com/Eyevinn/mp4ff v0.47.0 github.com/bluenviron/gortsplib/v4 v4.12.3 github.com/bluenviron/mediacommon v1.14.0 @@ -11,7 +11,6 @@ require ( github.com/gen2brain/aac-go v0.0.0-20230119102159-ef1e76509d21 github.com/golang/snappy v1.0.0 github.com/pion/rtp v1.8.13 - github.com/zaf/g711 v1.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -19,11 +18,10 @@ require ( github.com/asticode/go-astikit v0.52.0 // indirect github.com/asticode/go-astits v1.13.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grafov/m3u8 v0.12.1 // indirect github.com/pion/randutil v0.1.0 // indirect github.com/pion/rtcp v1.2.15 // indirect github.com/pion/sdp/v3 v3.0.11 // indirect - github.com/zencoder/go-dash v0.0.0-20201006100653-2f93b14912b2 // indirect + github.com/zaf/g711 v1.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.37.0 // indirect diff --git a/writer/go.sum b/writer/go.sum index 848c717..349d664 100644 --- a/writer/go.sum +++ b/writer/go.sum @@ -1,5 +1,5 @@ -git.insit.tech/sas/rtsp_proxy v0.0.0-20250325071536-7b97f96d64e6 h1:9WyrbPswZtjr3sqoCYaqus22j5st2HuVjWMiBTAorsM= -git.insit.tech/sas/rtsp_proxy v0.0.0-20250325071536-7b97f96d64e6/go.mod h1:/AHWd1Otr+ikOLWzpXtoozzifEx9ZKou+R6DgwaEzr0= +git.insit.tech/sas/rtsp_proxy v0.0.0-20250326040356-446f7f0578d9 h1:8aOLn23rkkXR/mpkOtbaNrCWsiBs0Pl+/ds3CzUuHZo= +git.insit.tech/sas/rtsp_proxy v0.0.0-20250326040356-446f7f0578d9/go.mod h1:/AHWd1Otr+ikOLWzpXtoozzifEx9ZKou+R6DgwaEzr0= github.com/Eyevinn/mp4ff v0.47.0 h1:XSSHYt5+I0fyOnHWoNwM72DtivlmHFR0V9azgIi+ZVU= github.com/Eyevinn/mp4ff v0.47.0/go.mod h1:hJNUUqOBryLAzUW9wpCJyw2HaI+TCd2rUPhafoS5lgg= github.com/asticode/go-astikit v0.30.0/go.mod h1:h4ly7idim1tNhaVkdVBeXQZEE3L0xblP7fCWbgwipF0= diff --git a/writer/internal/ingest/rtsp/rtsp.go b/writer/internal/ingest/rtsp/rtsp.go index 2c30179..c797614 100644 --- a/writer/internal/ingest/rtsp/rtsp.go +++ b/writer/internal/ingest/rtsp/rtsp.go @@ -4,6 +4,7 @@ import ( "encoding/binary" "errors" "fmt" + "go.uber.org/zap" "log" "os" "strconv" @@ -21,11 +22,11 @@ import ( ) // StartWriter starts the program. -func StartWriter(dir string, period int, link string) error { - err := RTSP(dir, period, link) +func StartWriter(dir string, period int, link string, Log *zap.Logger) error { + err := RTSP(dir, period, link, Log) if err != nil { // Change domain if a camera was flipped to another domain. - err = changeDomain(dir, period, link, err) + err = changeDomain(dir, period, link, err, Log) if err != nil { return fmt.Errorf("change domain error: %w", err) } @@ -70,15 +71,6 @@ func RTSP(dir string, period int, link string) error { return fmt.Errorf("mkdirall error: %w", err) } - //////////////////////////////////////////////////////////////////////////////////////////////////// - - /* - // Create M3U8 playlist. - go gen.MediaPlaylistGenerator(dir+"/data/"+cutURI, "", fn.Duration, resolutions) - */ - - //////////////////////////////////////////////////////////////////////////////////////////////////// - // Find formats. var audioFormat string var videoFormat string @@ -1121,16 +1113,16 @@ func RTSP(dir string, period int, link string) error { } // changeDomain changes domain if a camera was flipped to another domain. -func changeDomain(dir string, period int, link string, err error) error { +func changeDomain(dir string, period int, link string, err error, Log *zap.Logger) error { err2 := errors.New("404 (Not found)") if errors.As(err, &err2) { if strings.Contains(link, "video-1") { - err = RTSP(dir, period, strings.Replace(link, "video-1", "video-2", 1)) + err = RTSP(dir, period, strings.Replace(link, "video-1", "video-2", 1), Log) if err != nil { return err } } else { - err = RTSP(dir, period, strings.Replace(link, "video-2", "video-1", 1)) + err = RTSP(dir, period, strings.Replace(link, "video-2", "video-1", 1), Log) if err != nil { return err } diff --git a/writer/internal/storage/temp.go b/writer/pkg/storage/temp.go similarity index 91% rename from writer/internal/storage/temp.go rename to writer/pkg/storage/temp.go index 0ed8ea8..a36e48b 100644 --- a/writer/internal/storage/temp.go +++ b/writer/pkg/storage/temp.go @@ -15,13 +15,14 @@ func main() { seg := Segment{ Date: now.Format(time.RFC3339), Duration: "1m", - Packets: InterleavedPacket{ - - Type: PacketTypeH264, - Pts: now.UnixNano(), - H264AUs: [][]byte{ - []byte{0x00, 0x01, 0x02}, - []byte{0x03, 0x04}, + Packets: []InterleavedPacket{ + { + Type: PacketTypeH264, + Pts: now.UnixNano(), + H264AUs: [][]byte{ + []byte{0x00, 0x01, 0x02}, + []byte{0x03, 0x04}, + }, }, }, }