You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用FFMpeg\Media\Video::addWatermark()方法报错,求助解决

问题原因

你直接使用了原生FFMpeg\Media\Video类实例,而addWatermark()是ProtoneMedia\LaravelFFMpeg封装的专属方法,原生PHP-FFMpeg的Video类并没有这个方法,所以报错。其他视频处理功能(如resize、frame)是原生PHP-FFMpeg自带的,因此注释水印代码后能正常运行。

修正方案

改用ProtoneMedia\LaravelFFMpeg提供的封装类来操作,而不是原生的FFMpeg\FFMpeg。修正后的代码如下:

use ProtoneMedia\LaravelFFMpeg\Support\FFMpeg;
use ProtoneMedia\LaravelFFMpeg\Filters\WatermarkFactory;

$video = FFMpeg::open('video-making-test/test1.mp4');

// 其他原生功能依然可以正常使用
// $video
//     ->filters()
//     ->resize(new \FFMpeg\Coordinate\Dimension(320, 240))
//     ->synchronize();
// $video
//     ->frame(\FFMpeg\Coordinate\TimeCode::fromSeconds(10))
//     ->save('video-making-test/results/frame.jpg');

$video->addWatermark(function(WatermarkFactory $watermark) {
    $watermark->fromDisk('public')
        ->open('video-making-test/logo.png')
        ->right(25)
        ->bottom(25);
});

// 最后别忘了保存处理后的视频
$video->save('public/video-making-test/output.mp4');
补充说明
  • 确保已正确配置Laravel FFMpeg的环境(比如config/ffmpeg.php配置文件)
  • 视频处理完成后必须调用save()方法生成最终文件

内容的提问来源于stack exchange,提问作者Amir Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:07:17