Как я могу использовать ffmpeg в YII - PullRequest
1 голос
/ 19 апреля 2011

Я хочу сделать эскизы видео и конвертировать видео в FLV или MP4. я использую windows7 64bit, wamp, yii 1.1.7

Я хочу сделать миниатюры при загрузке файлов и сохранить их в папке для большого пальца, чтобы использовать позже

любая помощь, предложение или альтернатива

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Это минимум для запуска команд ffmpeg:

    public function execFFmpegCommand($command)
  {
    $sCommand = CEnvConfig::$FFmpegPath." ".$command;
    $buffer = CCommon::runExternal($sCommand);

    return $buffer;
  }



  public static function runExternal($cmd)
  {
    $cmd = "{$cmd} 2>&1";
    exec($cmd, $buffer);
    $buffer = implode("\r\n", $buffer);

    return $buffer;
  }

Чтобы получить фотографии (миниатюры) из видео, вам нужно использовать FFMPlayer:

            $sCommand = $videoFileURI." -ss ".$pointerTimeCode." -frames ".$frames." -vo jpeg:quality=100:optimize=0:smooth=0:noprogressive:nobaseline";

or

            $sCommand = $videoFileURI." -ss ".$pointerTimeCode." -frames ".$frames." -vo png:z=0";

  public function execMPlayerCommand($command)
  {
    $sCommand = CEnvConfig::$MPlayerPath." -nosound ".$command;
    $buffer = CCommon::runExternal($sCommand);

    return $buffer;
  }
0 голосов
/ 21 апреля 2011

Я сделал нечто похожее с yii и LAMP. Я использовал расширение загрузки Yii для загрузки файлов. После завершения загрузки я перемещаю файл в нужное место на контроллере. Контроллер PHP выполняет процесс ffmpeg для определения продолжительности файла. Затем он генерирует миниатюру с середины продолжительности с помощью команды ffmpeg. Наконец, я создаю сегментированный поток TS с помощью команд segmenter и ffmpeg для поддержки потоковой передачи iOS. Все это может быть автоматизировано.

...