【问题标题】:Laravel ffmpeg encoding failed not convertingLaravel ffmpeg 编码未能转换
【发布时间】:2018-10-12 23:18:20
【问题描述】:

我正在尝试使用 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();

【问题讨论】:

标签: laravel ffmpeg


【解决方案1】:

您似乎调用了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();

【讨论】:

  • 谢谢。我希望将我的问题更改为尝试调整视频大小,因为我也在尝试调整视频大小而不是设置 killobitrate 和音频编解码器,但我一直无法探测,我真的不明白为什么当我在实际上遵循github.com/pascalbaljetmedia/laravel-ffmpeg的示例
  • 没问题。如果我的解决方案适用于您的原始问题,请标记为正确。如果您有需要解决的新问题,请创建一个与此不同的新帖子,我很乐意查看它。谢谢。
  • 好的太好了,我现在要创建了 你会第一个回答吗?你有这么大的帮助
  • 好的,只需在此处回复链接即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 2016-12-06
  • 2021-02-19
  • 2023-03-24
相关资源
最近更新 更多