mirror of
https://github.com/EvolutionAPI/evolution-audio-converter.git
synced 2025-07-13 15:14:50 -06:00
feat: convert to mp3
This commit is contained in:
parent
28ae9c0f8c
commit
3fe2569fd9
16
main.go
16
main.go
@ -69,9 +69,14 @@ func validateAPIKey(c *gin.Context) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertAudioToOpusWithDuration(inputData []byte) ([]byte, int, error) {
|
func convertAudio(inputData []byte, format string) ([]byte, int, error) {
|
||||||
cmd := exec.Command("ffmpeg", "-i", "pipe:0", "-ac", "1", "-ar", "16000", "-c:a", "libopus", "-f", "ogg", "pipe:1")
|
var cmd *exec.Cmd
|
||||||
|
switch format {
|
||||||
|
case "mp3":
|
||||||
|
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-f", "mp3", "pipe:1")
|
||||||
|
default:
|
||||||
|
cmd = exec.Command("ffmpeg", "-i", "pipe:0", "-ac", "1", "-ar", "16000", "-c:a", "libopus", "-f", "ogg", "pipe:1")
|
||||||
|
}
|
||||||
outBuffer := bufferPool.Get().(*bytes.Buffer)
|
outBuffer := bufferPool.Get().(*bytes.Buffer)
|
||||||
errBuffer := bufferPool.Get().(*bytes.Buffer)
|
errBuffer := bufferPool.Get().(*bytes.Buffer)
|
||||||
defer bufferPool.Put(outBuffer)
|
defer bufferPool.Put(outBuffer)
|
||||||
@ -151,7 +156,9 @@ func processAudio(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
convertedData, duration, err := convertAudioToOpusWithDuration(inputData)
|
format := c.DefaultPostForm("format", "ogg")
|
||||||
|
|
||||||
|
convertedData, duration, err := convertAudio(inputData, format)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||||
return
|
return
|
||||||
@ -160,6 +167,7 @@ func processAudio(c *gin.Context) {
|
|||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
"duration": duration,
|
"duration": duration,
|
||||||
"audio": base64.StdEncoding.EncodeToString(convertedData),
|
"audio": base64.StdEncoding.EncodeToString(convertedData),
|
||||||
|
"format": format,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user