Take control over your live stream video by running it yourself. Streaming + chat out of the box.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
842 B

package controllers
import (
"net/http"
"sort"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
)
type variants []models.StreamOutputVariant
type variantsResponse struct {
Name string `json:"name"`
Index int `json:"index"`
}
// GetVideoStreamOutputVariants will return the video variants available.
func GetVideoStreamOutputVariants(w http.ResponseWriter, r *http.Request) {
outputVariants := data.GetStreamOutputVariants()
sort.Slice(outputVariants, func(i, j int) bool {
return outputVariants[j].VideoBitrate < outputVariants[i].VideoBitrate
})
result := make([]variantsResponse, len(outputVariants))
for i, variant := range outputVariants {
variantResponse := variantsResponse{
Index: i,
Name: variant.GetName(),
}
result[i] = variantResponse
}
WriteResponse(w, result)
}