微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HLS转换时出现错误FFMpeg Laravel过滤器

如何解决HLS转换时出现错误FFMpeg Laravel过滤器

我正在尝试使用Laravel上的ffmpeg库将mp4转换为m3u8视频格式。

当前,它可以处理生成的视频的比特率和大小,但是当我尝试添加过滤器以定义分辨率时,它会产生以下对数错误

20-11-03 16:55:19]本地。错误支持custom_filter过滤器 从0.3 ffmpeg版本开始;您的ffmpeg版本是 git-2020-08-26-8f2c1f2 {“ userId”:1,“ exception”:“ [对象] (FFMpeg \ Exception \ RuntimeException(code:0):custom_filter过滤器是 从0.3 ffmpeg版本开始支持;您的ffmpeg版本是 git-2020-08-26-8f2c1f2 at C:\ laragon \ www \ maquillate \ vendor \ PHP-ffmpeg \ PHP-ffmpeg \ src \ FFMpeg \ Media \ AdvancedMedia.PHP:344)

这是我目前的实现方式

    $lowBitrate = (new \FFMpeg\Format\Video\X264('libfaac','libx264'))->setKiloBitrate(250);
    $midBitrate = (new \FFMpeg\Format\Video\X264('libfaac','libx264'))->setKiloBitrate(500);
    $highBitrate = (new \FFMpeg\Format\Video\X264('libfaac','libx264'))->setKiloBitrate(1000);


        FFMpeg::Fromdisk('local')->open($media)
            ->exportForHLS()
            ->setSegmentLength(10) // optional
            ->setKeyFrameInterval(48) // optional
            ->addFormat($lowBitrate,function ($video) {
                $video->addLegacyFilter(function ($filters) {
                    $filters->resize(new \FFMpeg\Coordinate\Dimension(640,480));
                });
            })
            ->addFormat($midBitrate)
            ->addFormat($highBitrate)
            ->save('public/hls/' . $video->id . '/video.m3u8');

如果我从这段代码删除了过滤器,它们可以正常工作,但是我需要添加这些尺寸。

这是Laravel FFmpeg的文档,我需要做https://github.com/protonemedia/laravel-ffmpeg#hls

注意:我的操作系统是Windows 10

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。