mirror of
https://github.com/EvolutionAPI/evolution-audio-converter.git
synced 2025-07-13 15:14:50 -06:00
try fix web to ogg
This commit is contained in:
parent
ead2e11b5f
commit
c08e5637d2
22
main.go
22
main.go
@ -77,15 +77,22 @@ func validateAPIKey(c *gin.Context) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func convertAudio(inputData []byte, format string) ([]byte, int, error) {
|
||||
func convertAudio(inputData []byte, inputFormat string, outputFormat string) ([]byte, int, error) {
|
||||
var cmd *exec.Cmd
|
||||
switch format {
|
||||
switch outputFormat {
|
||||
case "mp3":
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-f", "mp3", "pipe:1")
|
||||
case "wav":
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-f", "wav", "pipe:1")
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-f", "wav", "pipe:1")
|
||||
default:
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-ac", "1", "-ar", "16000", "-c:a", "libopus", "-f", "ogg", "pipe:1")
|
||||
if inputFormat == "webm" {
|
||||
// Custom settings for webm to ogg conversion
|
||||
fmt.Println("Conversão de webm para ogg")
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-acodec", "libopus", "-b:a", "16k", "-vbr", "on", "-compression_level", "10", "-ac", "1", "-ar", "16000", "-f", "ogg", "pipe:1")
|
||||
} else {
|
||||
// Default settings for other formats to ogg
|
||||
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-acodec", "libopus", "-ac", "1", "-ar", "16000", "-f", "ogg", "pipe:1")
|
||||
}
|
||||
}
|
||||
outBuffer := bufferPool.Get().(*bytes.Buffer)
|
||||
errBuffer := bufferPool.Get().(*bytes.Buffer)
|
||||
@ -166,9 +173,10 @@ func processAudio(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
format := c.DefaultPostForm("format", "ogg")
|
||||
outputFormat := c.DefaultPostForm("output_format", "ogg")
|
||||
inputFormat := c.DefaultPostForm("input_format", "ogg")
|
||||
|
||||
convertedData, duration, err := convertAudio(inputData, format)
|
||||
convertedData, duration, err := convertAudio(inputData, inputFormat, outputFormat)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
@ -177,7 +185,7 @@ func processAudio(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"duration": duration,
|
||||
"audio": base64.StdEncoding.EncodeToString(convertedData),
|
||||
"format": format,
|
||||
"format": outputFormat,
|
||||
})
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user