通过golang服务器接收ffmpeg实时流媒体并回显到websocket conn

时间:2017-07-28 14:56:30

标签: video go ffmpeg streaming

我正在编写服务器,需要在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
            }
        }
    }

}

0 个答案:

没有答案