package main import ( "bytes" "context" "decoder/demo" "decoder/valib/ipc" "encoding/gob" "flag" "fmt" // "videoServer/demo" ) var ( streamURL string picFolder string ipcURL string proc string ) func init() { flag.StringVar(&streamURL, "i", "rtsp://192.168.1.203:8554/16.mkv", "input url") flag.StringVar(&picFolder, "f", ".", "test pic folder") flag.StringVar(&ipcURL, "ipc", "ipc:///tmp/pic.ipc", "ipc label") } func test() { fmt.Println("start test") fmt.Println(picFolder) demo.SendByIPC(streamURL, "camera1", ipcURL) } type cameraInfo struct { cameraID string videoURL string } func recvFromIPC(ctx context.Context, url string) (cameraID, rtspURL string) { ipc := ipc.NewClient(ctx, url) for { msg := ipc.Recv() var buf bytes.Buffer buf.Write(msg) dec := gob.NewDecoder(&buf) var i cameraInfo if err := dec.Decode(&i); err != nil { fmt.Println("gob decode CameraImage error", err) continue } return i.cameraID, i.videoURL } } func main() { flag.Parse() ctx, cancel := context.WithCancel(context.Background()) recvFromIPC(ctx, "tcp://192.168.1.156:7000") cancel() // test() }