【问题标题】:Insert Image into MP4 video by PHP通过 PHP 将图像插入 MP4 视频
【发布时间】:2016-08-24 11:40:29
【问题描述】:

我想在服务器端通过 PHP 将静止图像插入 mp4 序列,放置图像的位置会移动,例如我会将图像放入具有色度键颜色(或指定坐标)在一个房间里,这个相框的位置会在视频中移动(如果可能的话..)。与 Facebook 的“朋友节”视频非常相似。请参阅此example link

是否有任何类或函数可以让我这样做?

查看了上一个问题,但似乎没有结论? Inserting an image inside a video at particular position via PHP and a video extension

提前感谢您的帮助!

【问题讨论】:

  • 没有关于如何单独使用 PHP 执行此操作的答案,但希望我的回答对一些建议有用。
  • 非常感谢您的详细回复以及示例工具的链接。我会根据你的步骤考虑使用 FFmpeg,如果我的客户愿意使用插入图像的静止帧,那么我们就不必应用透视/扭曲..
  • PS:如果您不需要移动图像(如电视新闻阅读器 + 缩略图),那么您可以使用 linked answer 将图像放置在一个位置 x 数量的时间。如果有像带有标志的汽车这样的运动,那么您需要静止图像(抓取)并检查每个帧静止图像应该放置的位置。这就是 PHP 变得笨拙的地方(但可行取决于准备好的视频输入)。为此,您需要 C++/C# 或 Java 或 AS3 之类的东西。

标签: php video mp4


【解决方案1】:

您需要的不仅仅是 PHP。您需要了解一些关于像素编程及其子类别的知识:计算机视觉。

在我向您展示现实检查之前,让我们假设该任务真的像 "...Insert still images into a mp4 sequence by PHP" 一样简单。你需要什么?

试试 PHP:
如果您准备输入素材以在其中插入图像的绿色框之类的东西,那么您可以考虑使用 PHP method 将绿色像素替换为用户照片。

您必须对每一帧都执行此操作。要将视频分解为单帧 PNG,请尝试使用 FFmpeg 之类的工具...

试试 FFmpeg:
首先在您的服务器上安装 FFmpeg(甚至还有一个 FFmpeg 到 PHP 的连接,即:发送命令并接收结果)。这将用于从源中提取叠加图像,然后对新的输出视频进行编码。您可以看到 this answer 用于在特定位置叠加图像。

在下面的 sn-p 中,指定了两个输入图像(vid_frame1.png 是需要插入图像的视频抓取,over_image1.png 是要叠加的图像)。 overlay=75:200 表示位置叠加图像在 75 像素 (x) 和 200 像素 (y) 处。

ffmpeg -i vid_frame1.png -i over_image1.png -filter_complex "[0:v][1:v] overlay=75:200" new_frame1.png

如您所见,您必须指定位置,因此在移动视频中(放置位置会随时间变化)您需要跟踪每一帧中的预期图像位置。在 24 FPS 视频中,这意味着每秒可能有 24 个独特的位置,这可能会变得乏味。您将运行上述命令 24 次,每次更改 overlayposition。

注意:如果您安装 FFmpeg 并将其与 PHP 一起使用,那么您还可以执行 stdinput / stdoutput 过程。这意味着您可以直接输出到视频文件,而不是输出“编辑帧”PNG。视频是在您的程序运行时生成的,当它完成时,会有一个完整的视频文件。这太长了,无法解释,但您可以提供相关信息。

现实检查...
您所说的称为“动态视频”。您需要一个系统来处理像素跟踪、透视失真和运动模糊等任务。该系统将是一个基于服务器的应用程序(使用 Java?或 C#?)。这是 dynamic editing tool 的一个示例。还可以尝试编写类似 distortion tool(找到 here)这样的代码,如果我们采用绿色块的想法,现在您只需在源代码中找到绿色块的四个角视频帧并将这些失真点定位到每个角落,并且您有透视失真等。对于通过 PHP 进行的运动模糊(我从未尝试过,但是)有谷歌搜索......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2023-04-01
    • 2020-04-19
    • 1970-01-01
    • 2012-07-11
    • 2019-08-09
    相关资源
    最近更新 更多