Пакет системы вызовов с Go на App Engine Standard - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь использовать 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

1 Ответ

1 голос
/ 09 ноября 2019

Благодаря вопросу, заданному @iLoveReflection, я понимаю, что локально работающая версия приложения будет вызывать команду ffmpeg, ожидая, что она будет находиться в месте, указанном стандартной переменной среды $ PATH. Я думал, что App Engine будет распознавать вызов ffmpeg и использовать исполняемый файл, который он установил в произвольном месте.

Перемещение исполняемого файла ffmpeg в /usr/local/bin и обеспечение того, что $ PATH включает этот каталог исправленнымвопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...