Perl 使用catalyst框架的flash/html5播放器流媒体视频

Perl 使用catalyst框架的flash/html5播放器流媒体视频,perl,streaming,video-streaming,jwplayer,catalyst,Perl,Streaming,Video Streaming,Jwplayer,Catalyst,我正在开发一个网站,使用Catalyst(一个perl MVC框架)和JWplayer在线提供多个视频,我需要一种稳定的方式将视频流到客户端播放器,能够从一个随机点开始视频 我在网上搜索了一些方法来实现它,但我找不到在Catalyst中实现它的简单方法(RTMP或HTTP伪流)。我发现的唯一一个简单的例子是一个旧的Catalyst脚本流式播放MP3(),但我不知道如果我将该技术应用到视频中,它是否会像预期的那样工作 用Catalyst/Perl以一种不复杂的方式提供在线视频的好方法是什么?或者推

我正在开发一个网站,使用Catalyst(一个perl MVC框架)和JWplayer在线提供多个视频,我需要一种稳定的方式将视频流到客户端播放器,能够从一个随机点开始视频

我在网上搜索了一些方法来实现它,但我找不到在Catalyst中实现它的简单方法(RTMP或HTTP伪流)。我发现的唯一一个简单的例子是一个旧的Catalyst脚本流式播放MP3(),但我不知道如果我将该技术应用到视频中,它是否会像预期的那样工作

用Catalyst/Perl以一种不复杂的方式提供在线视频的好方法是什么?或者推荐的方法是什么


谢谢大家

这只是一个部分答案,因为我目前也被困在这个问题上

如果文件已经是FLV格式,那么Static::Simple插件就可以正常工作。我已经用root/static/目录中的一个文件和
$c->service\u static\u file
方法对它进行了测试。下面是我的jwplayer设置(包装在JQuery的ready函数中)

<script type="text/javascript" src="[% c.uri_for('/static/js/mediaplayer-5.10') %]/jwplayer.js"></script>
<script type="text/javascript">
$(function() {
        jwplayer('mediaplayer').setup({
        'flashplayer': "[% c.uri_for('/static/js/mediaplayer-5.10/player.swf') %]",
        'id': 'playerID',
        'width': '480',
        'height': '270',
        'file': "[% c.uri_for('/download') %]/dump/ffs/root/static/transcode_jEfhmk.flv"
    }); 
});
</script>
要添加伪流,您需要创建一个控制器来查找start查询参数,然后查找它,并将
$c->response->body
发送到文件句柄

open(my $fh, "<", $path);
binmode($fh);
if ($c->req->param('start')){
    seek($fh, $c->req->param('start'), 0); 
}
$c->response->body($fh);

open(my$fh),最后,我使用apache和x_send_file插件来交付webm视频(使用range byte seek),使用Amazon cloud front来交付mp4视频和mp4流媒体

编辑:
结束使用带有自定义插件的Wowza流媒体服务器与Catalyst进行安全通信。没有专用的视频服务器,就没有可靠的流媒体视频方式,尤其是在商业领域。

Static::Simple插件将提供视频(使用FLV格式)向处于任何开始位置的播放机发送播放机请求?我今天没有时间测试它,但我将测试它并发布结果!看起来我错了。我的视频立即进行了缓冲,因此我没有注意到您无法通过缓冲部分进行搜索。看起来我们可能需要实现,捕获开始参数,并像在Strea中那样进行搜索ming.pm.至少它是以字节为单位的。呵呵。谢谢你提供的信息,我还在寻找一种稳定而简单的流媒体方式。如果我成功了,我会把how to放在这里!
open(my $fh, "<", $path);
binmode($fh);
if ($c->req->param('start')){
    seek($fh, $c->req->param('start'), 0); 
}
$c->response->body($fh);