如何使 Laravel 视频水印叠加功能正常运行?

问题描述 投票:0回答:1

我已经安装了FFMpeg,所有的工作和转换都如我所愿,但是当我尝试使用水印过滤器时使用

ProtoneMedia\LaravelFFMpeg\Filters\WatermarkFactory
;

它渲染没有问题,但上面没有水印,我可以在日志文件上看到任何错误?

这是我的工作

ConvertVideo.php
文件

public function handle()
{
    $destination = '/' . $this->video->uid . '/' . $this->video->uid . '.m3u8';
    $low = (new X264('aac'))->setKiloBitrate(500);
    $high = (new X264('aac'))->setKiloBitrate(1000);

    FFMpeg::fromDisk('videos-temp')
        ->open($this->video->path)
        ->exportForHLS()
        ->addFormat($low, function ($filters) {
            $filters->resize(640, 480);
        })
        ->addFormat($high, function ($filters) {
            $filters->resize(1280, 720);
        })

       //watermark filter
        ->addWatermark(function(WatermarkFactory $watermark) {
            $watermark->fromDisk('videos-temp')
                ->open('videos-temp/logo.png')
                ->right(-125)
                ->bottom(25)
                ->width(100)
                ->height(100);
        })
        
        ->toDisk('videos')
        ->save($destination);

    $this->video->update([
        'processed' => true,
        'proccessed_file' => $this->video->uid . '.m3u8'
    ]);
}

我可以毫无问题地转换视频,但我无法在其上添加水印,你们“专家”会如何解决这个问题?

提前致谢

完整代码已发布在上面,我添加了以下添加水印过滤器

// watermark filter
->addWatermark(function(WatermarkFactory $watermark) {
    $watermark->fromDisk('videos-temp')
        ->open('videos-temp/logo.png')
        ->right(-125)
        ->bottom(25)
        ->width(100)
        ->height(100);
})

protonemedia/laravel-ffmpeg
- Github

laravel laravel-blade overlay watermark ffmpeg-php
1个回答
0
投票

使用绝对路径设置水印文件,如下所示:

->addWatermark(function(WatermarkFactory $watermark) {
$watermark->fromDisk('videos-temp')
    ->open(storage_path('videos-temp/logo.png'))
    ->right(-125)
    ->bottom(25)
    ->width(100)
    ->height(100);
})
© www.soinside.com 2019 - 2024. All rights reserved.