我们正在使用FFMPEG将视频转换为MP4.

我们做了很多研究,但是我们不知道如何将公司徽标作为徽标或水印添加到转换后的视频中

PHP代码

<?php 
$uploads_dir = 'original/';
$file_name = basename($_FILES['file']['name']);
$output_name = explode('.', $file_name)[0];
$uploaded_file = $uploads_dir . $file_name;
$convert_status = ['mp4' => 0, 'webm' => 0];

if(isset($_POST['submit'])) {
  if(move_uploaded_file($_FILES['file']['tmp_name'], $uploaded_file)) {
    // Make sure to get the correct path to ffmpeg
    // Run $ where ffmpeg to get the path
    $ffmpeg = '/bin/ffmpeg';
    
    // MP4
    $video_mp4 = $output_name . '.mp4';
    exec($ffmpeg . ' -i "' . $uploaded_file . '" -vcodec h264 -acodec libfdk_aac "./converted/' . $video_mp4 . '" -y 1>convert.txt 2>&1', $output, $convert_status['mp4']);

    // Debug
    // echo '<pre>' . print_r($output, 1) . ' </pre>';

   

    // Debug
    // echo '<pre>' . print_r($output, 1) . ' </pre>';
  }
}
?>

我们想添加的标志是:https://propeview.com/wp-content/uploads/2021/08/logo-whiteb.png

推荐答案

Example your video.mp4 has resolution 1280 x 720,
and overlay logo.png on video.mp4 at position x = 0 and y = 0.

对于许多场景和稳定场景,您应该首先了解大约ffprobe个分析输入

ffmpeg -i video.mp4 -i logo.png -filter_complex
   "[1:v]scale=w=1280:h=720,
    [0:v]overlay=x=0:y=0:format=yuv420[out]"
   -map 0:a -map [out] -y output.mp4

或者无比例叠加

ffmpeg -i video.mp4 -i logo.png -filter_complex
   "[1:v][0:v]overlay=x=0:y=0:format=yuv420[out]"
   -map 0:a -map [out] -y output.mp4

Document: scale, overlay
Note [1:v] and [0:v]: 1 and 0 are index of inputs. v is video stream, a is audio stream

Php相关问答推荐

在PHP中替换数组中的文本并同时使用其他函数

在Laravel Eloquent中实现一对多关系

为什么本地主机(Xampp)上的laravel运行速度比普通html站点慢?

如何保存基于用户 Select 的复选框 Select 模式

如何按类别过滤自定义帖子类型

Codeigniter 4中的未定义变量$HOME

升级到PHP 8.2后无法删除cURL Cookie文件

PHP Match如何准确判断条件?

如果所有请求都通过index.php路由,如何使用htaccess文件强制使用HTTPS?

使用 secure 和 httponly 选项删除 php 中的 cookie 值得吗?

对产品/库存结果集进行分组和计数,形成多维分层数组

如果 Select 的县不是store 所在的县,如何隐藏本地自提?

使用 Spomky Labs JWT 框架中的 verifyWithKey 验证 id_token JWT 的签名需要 30 秒以上

无法在 Laravel 中实例化抽象类 ProductAbstract

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

安装 Herd 并返回 Valet 后为 502

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

如何使用动态变量定义 bind_result?

如何故意创建不同的错误(404,500,419)? Lavravel PHP

如何在不解压缩/重新压缩的情况下连接(连接)两个缩小的值