Я пытаюсь использовать FFmpeg в Go приложении, которое работает на Google App Engine Standard . Я могу заставить это работать локально, когда я указываю на локальный экземпляр двоичного файла FFmpeg, используя exec.Command ()
cmd := exec.Command(
"/Users/justin/Desktop/conversion/ffmpeg", // this won't work on a remote server
"-i", "pipe:0",
"-ac", "1",
"-codec:a", "libmp3lame",
"-b:a", "48k",
"-ar", "24000",
"-f", "mp3",
"pipe:1",
)
cmd.Stdin = bytes.NewReader(synthResp.AudioContent)
var output bytes.Buffer
cmd.Stdout = &output
err = cmd.Run()
Очевидно, что это не будет работать, когда я разверну приложение, поэтому мне нужноспособ указать на размещенную версию двоичного файла FFmpeg. Похоже, ffmpeg
- это системный пакет для стандартной среды go1.11 App Engine.
Что такое «системные пакеты» и как их использовать? Когда я ищу документацию, я нахожу много документации по apt-get
, и нет документации о том, как их использовать, App Engine или иным образом. Нужно ли его устанавливать или он уже должен быть частью контейнера (?), На котором работает App Engine?
Я называю это так, как я бы назвал другие исполняемые файлы? Если так, то я ожидаю, что это сработает, но это не
cmd := exec.Command(
"ffmpeg", // <------ what should this be?
"-i", "pipe:0",
"-ac", "1",
"-codec:a", "libmp3lame",
"-b:a", "48k",
"-ar", "24000",
"-f", "mp3",
"pipe:1",
)
cmd.Stdin = bytes.NewReader(synthResp.AudioContent)
var output bytes.Buffer
cmd.Stdout = &output
err = cmd.Run()
Ошибка записи, я вижу exec: "ffmpeg": executable file not found in $PATH