我正在编写服务器,需要在ffmpeg客户端获取凸轮视频,并将流传输给websocket用户。
但在我的代码中,从ffmpeg客户端收到的http正文由ioutil.ReadAll加载,无法进行直播,因为正在通过视频捕获接收新值。 我如何拍摄视频的最后一帧,发送到websockets,清理变量并正确接收新帧(或者我做错了方式)?
以下是此功能的代码:
//StartClientStream needs a email$clientName$streamName
func StartClientStream(w http.ResponseWriter, r *http.Request) {
values := strings.Split(string(mux.Vars(r)["rest"]), "$")
if len(values) != 3 {
w.Write([]byte(`{"err":"the passed value does not match with necessary fields"}`))
return
}
//Get user ID
id, _ := getID(values[0])
//Take the streaming ClientName
clientName := id + " - " + values[1]
//Take the passed Body
body, _ := ioutil.ReadAll(r.Body)
//Watch for websockets requests for this video
for user := range Streaming.User[clientName] {
conexoes := strings.Split(Streaming.User[clientName][user], "-")
for c := range conexoes {
if strings.EqualFold(conexoes[c], values[2]) {
//Send the video
user.send <- body
}
}
}
}