golang:在不运行可执行文件的情况下将音频转换为FLAC

时间:2019-03-29 09:21:59

标签: google-app-engine go audio ffmpeg audio-converter

我正在尝试制作一个Google App Engine,该应用程序从存储中获取文件,并将任意音频文件转换为FLAC。但是,App Engine不允许运行可执行文件。

我当前的代码如下:

cmd := exec.CommandContext(ctx, `./ffmpeg`,
    `-i`, `pipe:0`, `pipe:1`, `-ac`, `1`, `-c:a`, `flac`, `-f`, `flac`)
cmd.Stdin = rc
cmd.Stdout = wc

var errOutput bytes.Buffer
cmd.Stderr = &errOutput

err = cmd.Run()
fmt.Printf("Running ffmpeg: %v... \nstderr: %s\n", err, errOutput.String())

试图寻找可以做到这一点的go软件包(例如https://github.com/xfrr/goffmpeg),但我发现的所有软件包似乎都使用与上面的代码相同的“在输入端运行可执行文件”范例。

我应该如何处理?是否有提供与FFMPEG或类似文件绑定的软件包?

1 个答案:

答案 0 :(得分:0)

您可以在导入ffmpeg-python的App Engine中使用ffmpeg功能:FFmpeg的Python绑定,例如Libav

请注意,有two steps to use third-party library with App Engine

  1. 将库添加到需求文件,该文件将在应用构建期间使用:ffmpeg-python==0.1.17
  2. 将其添加到应用代码:import ffmpeg

App Engine的视频编码应用示例:

  1. Scalable Video Transcoding With App Engine Flexible
  2. Distributed FFMPEG using Google App Engine