Files
go-rtsp/example/file/main.go
2021-07-22 10:58:13 +03:00

49 lines
741 B
Go

package main
import (
"io"
"net/http"
"os"
"github.com/Danile71/go-logger"
"github.com/Danile71/go-rtsp"
"github.com/gorilla/mux"
"github.com/mattn/go-mjpeg"
)
const uri = "./sample.mp4"
func main() {
s := mjpeg.NewStream()
stream, err := rtsp.Open(uri)
if logger.OnError(err) {
return
}
go func() {
for {
pkt, err := stream.ReadPacket()
if logger.OnError(err) {
if err == io.EOF {
os.Exit(1)
}
continue
}
if pkt.IsVideo() {
s.Update(pkt.Data())
}
}
}()
streamHandler := func(w http.ResponseWriter, r *http.Request) {
s.ServeHTTP(w, r)
}
router := mux.NewRouter()
router.HandleFunc("/stream", streamHandler)
http.Handle("/", router)
http.ListenAndServe(":8181", nil)
}