【发布时间】:2013-05-31 10:20:32
【问题描述】:
大家好!
我们尝试在 PHP 中编写一些非常小而简单的代码来生成视频的变体,始终使用相同的文件。
脚本必须在视频文件的随机或特定帧上制作一个小像素标记,并且必须实时流式传输。
这里有一些伪代码来解释我的想法:
$frame = $_GET[frame];
$videofile = 'video.avi';
make_random_red_pixel_mark($videofile, $frame);
有谁知道这是否可以使用 ffmpeg?同样,对我们来说,尽快执行此过程也非常重要。
意味着重新处理整个视频的解决方案对我们的目的没有用处。它应该类似于隐藏式字幕或快速图像/叠加过滤器,无需重新处理整个视频即可应用。同样,我们不能使用 Javascript 或任何 HTML 方法放置叠加层,因为实际操作必须在视频文件本身上。
原始视频的质量和帧率应保持不变。也许其他一些 PHP 模块或软件可以使用 exec() 从 PHP 执行?
有什么推荐吗?
提前致谢!!
克里斯·C·鲁索
更多信息:
1)我们可以将这个过程应用于我们想要的任何帧,因此我们可以使用“关键帧”来避免整个 GOP 的解码和重新编码。 p>
2) 如前所述,视频流必须实时流动。
【问题讨论】:
-
PHP 可能不是最好的方法,因为它不够强大。您可能想研究一个二进制服务器端解决方案并从 PHP 中调用它。
-
确实,我的朋友,你知道任何可以做到这一点的软件吗?谢谢!
-
您可以搜索 FFMPEG 选项。您可能想要搜索“ffmpeg 覆盖”之类的内容——然后找出您想要像素的位置,然后找出如何指定帧(如果可能)。 stackoverflow.com/questions/8131020/… 与 ffmpeg.org/ffmpeg.html#overlay-1 一起似乎是一个好的开始
-
@RobW
overlay视频过滤器需要重新编码,如果“重新处理”还包括或暗示重新编码,我相信 Chris Russo 想避免这种情况。您的覆盖 URL 也很旧:overlay video filter documentation。 -
谢谢@RobW 和 LordNeckbeard
标签: php ffmpeg video-streaming video-processing