Compare commits

..

No commits in common. "4451458dc25308f31319fd207067eb2297db3d62" and "87bc3827475a2e7982aa206937c9834c3e6415fe" have entirely different histories.

3 changed files with 6 additions and 12 deletions

View File

@ -16,7 +16,7 @@ type Config struct {
BufferSize uint `default:"32" validate:"required|min:1"` BufferSize uint `default:"32" validate:"required|min:1"`
// Kb // Kb
Bitrate uint64 `default:"32" validate:"required|min:8|max:320"` Bitrate uint `default:"32" validate:"required|min:8|max:320"`
Codec string `default:"libopus" validate:"required"` Codec string `default:"libopus" validate:"required"`
Format string `default:"opus" validate:"required" ` Format string `default:"opus" validate:"required" `

View File

@ -5,7 +5,6 @@ import (
"log" "log"
"net/http" "net/http"
"net/url" "net/url"
"strconv"
) )
func handleGenres(w http.ResponseWriter, r *http.Request) { func handleGenres(w http.ResponseWriter, r *http.Request) {
@ -91,12 +90,7 @@ func handleGetM3u(w http.ResponseWriter, r *http.Request) {
} }
func handleStream(w http.ResponseWriter, r *http.Request) { func handleStream(w http.ResponseWriter, r *http.Request) {
bitrateKbps, err := strconv.ParseUint(r.URL.Query().Get("b"), 10, 64) err := stream(r.FormValue("url"), w)
if err != nil {
bitrateKbps = config.Bitrate
}
err = stream(r.FormValue("url"), w, bitrateKbps)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
} }

View File

@ -12,7 +12,7 @@ import (
"gopkg.in/djherbis/buffer.v1" "gopkg.in/djherbis/buffer.v1"
) )
func stream(url string, w http.ResponseWriter, bitrateKbps uint64) error { func stream(url string, w http.ResponseWriter) error {
if url == "" { if url == "" {
err := errors.New("empty url") err := errors.New("empty url")
@ -24,15 +24,15 @@ func stream(url string, w http.ResponseWriter, bitrateKbps uint64) error {
w.Header().Set("Accept-Ranges", "none") w.Header().Set("Accept-Ranges", "none")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
return encode(url, w, bitrateKbps) return encode(url, w)
} }
func encode(url string, w io.Writer, bitrateKbps uint64) error { func encode(url string, w io.Writer) error {
cmd := exec.Command("ffmpeg", cmd := exec.Command("ffmpeg",
"-i", url, "-i", url,
"-vn", "-vn",
"-c:a", config.Codec, "-c:a", config.Codec,
"-b:a", fmt.Sprintf("%dk", bitrateKbps), "-b:a", fmt.Sprintf("%dk", config.Bitrate),
"-f", config.Format, "-f", config.Format,
"-ac", "2", "-ac", "2",
"pipe:1") "pipe:1")