gpt4 book ai didi

php - 使用 FFMPEG 在视频上叠加图像

转载 作者:行者123 更新时间:2023-12-04 23:22:38 24 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg 和 php 在视频上叠加图像:

$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($videoOriginalFilePath);
$video
->filters()
->watermark($imageFilePath, array(
'position' => 'absolute',
'x' => 100,
'y' => 0,
));
$video->save(new FFMpeg\Format\Video\X264(), 'output.mp4');

这种方式工作正常,但问题是我需要这个“$imageFilePath”不是真正的路径,而是由 imagick 创建的图像。无论如何我可以做到吗?

最佳答案

我通过使用以下代码解决了这个问题:

// create temp file
$temp = new SplTempFileObject();

// get its file path
$tempPath = tempnam(sys_get_temp_dir(), $temp);

// open the file
$file = fopen($tempPath, "w");

// write the image to the temp file
$image->setImageFormat('png');
$image->writeImageFile($file);

// overlay the image using the temp file path
$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($video);
$video
->filters()
->watermark($tempPath, array(
'position' => 'absolute',
'x' => $xOffset,
'y' => $yOffset,
));

$video->save(new FFMpeg\Format\Video\X264(), 'output.mp4');

关于php - 使用 FFMPEG 在视频上叠加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62393907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com