FFmpeg的规模如何?任何例子?

时间:2010-01-29 23:17:59

标签: php performance ffmpeg

我目前正致力于增强现实项目的服务器端。这很像http://www.livingsasquatch.com/。我正在使用PHP / MySQL和FFmpeg捕获网络摄像头视频并将其编码为.flv。

Flash基本上将视频上传为一系列.jpg图像。 PHP然后获取这些图像,生成一些缩略图并通过FFmpeg传递它们,FFmpeg将它们转换为单个.flv文件。

这是FFmpeg代码:

$ffmpeg_images = $image_directory.'/image%d.jpg';

@unlink($video_directory."/$video_id.flv"); 
$ffmpeg_video = $video_directory."/$video_id.flv";
$ffmpeg_string = FFMPEG_PATH." -f image2 -i $ffmpeg_images -f flv $ffmpeg_video";

@exec($ffmpeg_string);

这似乎在我的测试中很好用,但我不知道它们将如何扩展。由于这是我第一次使用FFmpeg,我不知道这种方式的视频编码是否会让服务器瘫痪。

有没有人在高流量网站上有FFmpeg的经验?

有没有更好的方法来处理这种类型的网络摄像头到.flv转换?

是否有任何在高流量网站上使用FFmpeg的例子?

谢谢你的时间!

1 个答案:

答案 0 :(得分:2)

您的基本工作流程对我来说似乎是理智的。我相信还有其他方法。只需一系列要点来回答您的问题:

  • FFmpeg是视频编码领导者;可以说是''领导者。你不应该担心它本身就是一个问题,而是更多关于你如何使用它,你的参数等等。
  • 您的上述脚本的FFmpeg参数是纯默认值。如果您尝试不同的参数,您可能会获得更好,更高效的性能。有许多。 您应该花些时间调整FFmpeg参数。
  • 视频编码本质上是CPU密集型的。如果您有任何类型的音量,那么您将有计划。这意味着运行一些测试,记录一些指标,并进行预测。它还意味着密切关注您的硬件。例如:全新的英特尔酷睿i7 CPU在视频编码方面绝对优势 - 多倍比MHz *核心数等效的核心2快。
  • 您应该能够以优先级较低的流程启动FFMpeg作业,而不是Web服务器等。即使以100%的利用率挂钩,这也会使您的服务器保持活跃。
  • 如果您真的要处理流量,那么我强烈建议将FFmpeg工作转移到辅助专用编码服务器。根据您的流量,您甚至可能需要一个编码场。 / LI>

总之,在我看来,您的问题更多是“系统架构”'编码器参数调整'相关。

我能想到的另一种根本不同的方法会大大减少您的服务器端编码负载,而这将是处理客户端的所有内容。但不知怎的,我认为你已经打了折扣。