Не удалось преобразовать кодировку Laravel ffmpeg - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь конвертировать видео с помощью FFmpeg, но получаю сообщение об ошибке, в котором говорится, что кодировка не удалась.Я не уверен, что то, как я это написал, может быть неправильным.Я просто хотел бы, чтобы кто-нибудь взглянул на мой код, чтобы понять, не мог ли я сделать что-то не так.Вот мой код

    $viddy=new Video;


        if($request->video){
            $my_video = $request->file('video');
          $video_name = uniqid().$my_video->getClientOriginalName();

     $ffmpeg = FFMpeg\FFMpeg::create([
    'ffmpeg.binaries'  => "C:/Users/jayjay/Desktop/ffmpeg/ffmpeg/bin/ffmpeg.exe",
    'ffprobe.binaries' => "C:/Users/jayjay/Desktop/ffmpeg/ffmpeg/bin/ffprobe.exe"
]);



        $videoName = Storage::disk('s3')->url($video_name);

$video = $ffmpeg->open($videoName);


$format = new FFMpeg\Format\Video\X264();
                         $format->setAudioCodec("libmp3lame");
                         $format->setKiloBitrate(150);

                         //Save format to amasonS3
$video->save($format, Storage::disk('s3')->url('newvideo.mp4'));

        //Put the new video format in the database
          $viddy->video = $video;
        }

                $viddy->save();

1 Ответ

0 голосов
/ 12 октября 2018

Похоже, вы неправильно вызываете метод save(), что, вероятно, является результатом ошибки.Кроме того, это может упростить использование фасада с этим пакетом при открытии файла.Попробуйте вместо этого:

$video = FFMpegFacade::fromDisk('s3')->open($folder . '/' . $filename)

...

$video->export()->toDisk('s3')->inFormat($format)->save($folder . '/' . $new_filename);

Сохранить видео в базе данных - это отдельная история.Если вы хотите сохранить необработанные данные видео, вы можете сериализовать и кодировать base64 и т. Д. Но, поскольку вы сохраняете их на диск, вместо этого обычно проще сохранить путь к видео:

$viddy->video = $folder . '/' . $new_filename;
$viddy->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...