stream.go 960 B

123456789101112131415161718192021222324252627282930313233
  1. package system
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "server/api/v1/system"
  5. )
  6. // StreamRouter 流媒体路由结构体
  7. type StreamRouter struct{}
  8. // 全局API实例
  9. var streamApi = &system.StreamApi{}
  10. // InitStreamRouter 初始化流媒体路由
  11. func (s *StreamRouter) InitStreamRouter(Router *gin.RouterGroup, RouterPub *gin.RouterGroup) {
  12. // 私有路由(需JWT鉴权):流控制接口
  13. streamRouter := Router.Group("stream")
  14. // 公开路由(无需鉴权):播放HLS流
  15. streamPublicRouter := RouterPub.Group("stream")
  16. {
  17. // 公开路由:播放HLS流,支持.m3u8索引文件和.ts视频切片
  18. streamPublicRouter.GET("/hls/:streamId/*any", streamApi.PlayHLS)
  19. }
  20. {
  21. // 私有路由:流控制接口
  22. streamRouter.POST("/start", streamApi.StartStream) // 启动RTSP转HLS流
  23. streamRouter.POST("/stop", streamApi.StopStream) // 停止流转换
  24. streamRouter.GET("/list", streamApi.GetStreamList) // 获取活跃流列表
  25. }
  26. }