Php FFmpeg的伸缩性如何?有什么例子吗?

Php FFmpeg的伸缩性如何?有什么例子吗?,php,performance,ffmpeg,Php,Performance,Ffmpeg,我目前在一个增强现实项目的服务器端工作。很像。我正在使用PHP/MySQL和FFmpeg捕获网络摄像头视频并将其编码为.flv 基本上,Flash将视频上传为一长串.jpg图像。PHP然后获取这些图像,生成一些缩略图,并通过FFmpeg将其转换为单个.flv文件 以下是FFmpeg代码: $ffmpeg_images = $image_directory.'/image%d.jpg'; @unlink($video_directory."/$video_id.flv"); $ffmpeg_v

我目前在一个增强现实项目的服务器端工作。很像。我正在使用PHP/MySQL和FFmpeg捕获网络摄像头视频并将其编码为.flv

基本上,Flash将视频上传为一长串.jpg图像。PHP然后获取这些图像,生成一些缩略图,并通过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的例子?

我觉得你的基本工作流程是合理的。我相信还有其他方法。以下是一系列要点来回答您的问题:

  • FFmpeg是视频编码的领先者;可以说是“领袖”。您不应该担心它本身是一个问题,而应该更多地关注如何使用它、参数等
  • 以上脚本的FFmpeg参数是纯默认值。如果尝试不同的参数,您可能会获得更好、更高效的性能。有很多您应该花一些时间调整FFmpeg参数。
  • 视频编码本质上是CPU密集型的。如果你想要任何类型的音量,那么你就要有相应的计划。这意味着运行一些测试,记录一些指标,并做出预测。这也意味着密切关注你的硬件。例如:新的Intel Core i7 CPU在视频编码方面绝对令人震撼——比一个MHz*内核数相当于Core 2的处理器快数倍
  • 您应该能够以低于web服务器的优先级启动FFMpeg作业等。这将使您的服务器即使在100%利用率的情况下也保持快速
  • 如果您真的要处理大量流量,那么我强烈建议将FFmpeg工作转移到辅助的专用编码服务器。根据您的流量,您甚至可能需要一个编码场
总之,在我看来,您的问题与“系统架构”和“编码器参数调整”更相关

我能想到的另一种根本不同的方法是,它可以极大地减少服务器端的编码负载,那就是在客户端处理所有事情。但不知何故,我认为你已经打消了这种想法