亚马逊s3和节点js视频流和缩略图?

时间:2015-04-22 09:59:40

标签: node.js amazon-web-services amazon-s3 amazon

我在node.js项目中工作,我需要将.mp4文件上传到amazon s3。

我有两个问题:

问题1:我已将mp4文件上传到私人类型的存储桶中,我们可以说存储桶的名称是“videobucket'”。要在浏览器中查看视频,我创建了已签名的网址。

我的问题是:

正在签名的ULR是否与STREAMED URL不同。如果是,我应该执行哪些步骤来生成流式URL?

问题2:我需要创建我要上传到亚马逊s3的视频缩略图。我怎么能在node.js中做到这一点?

我是亚马逊和节点的新手。

提前谢谢大家!

我为上传文件而编写的代码如下:

var file = req.files.video;

    var fileName = new Date().getTime() + "_" + file.originalname;

    fs.readFile(file.path, function(err, data) {
        if (err) throw err;
        var s3bucket = new AWS.S3({
            params: {
                Bucket: 'myvideos'
            }
        });
        s3bucket.createBucket(function() {
            var params = {
                Key: fileName, //file.name doesn't exist as a property
                Body: data,
                ContentType: file.type,
            };
            s3bucket.upload(params, function(err, data) {
                fs.unlink(file.path, function(err) {
                    if (err) {
                        console.error(err);
                    }
                });

                if (err) {
                    res.status(500).send(err);
                } else { console.log("file uploaded"); }
        });

 });

});

1 个答案:

答案 0 :(得分:2)

这是我第一个问题的答案。经过谷歌搜索这么多小时后,我发现了这一点。

将Media和JW Player文件上传到Amazon S3存储桶:

步骤1:从JW Player网站上的功能页面下载播放器。然后提取.zip文件的内容。 第2步:登录到管理控制台 https://console.aws.amazon.com/s3/

步骤3:创建公共类型存储桶 步骤4:选择存储桶并单击“上载” 步骤5:将以下文件上传到存储桶

jwplayer.flash.swf

jwplayer.html5.js

jwplayer.js和

您的.mp4和.flv媒体文件

设置公开权限

创建CloudFront Web和RTMP分发

要配置CloudFront以流式传输媒体文件,您需要一个用于JW Player文件和HTML文件的CloudFront Web分发,以及媒体文件的RTMP分发。

<强>步骤

步骤1:打开云端控制台 https://console.aws.amazon.com/cloudfront/

第2步:创建分发

步骤3:在创建分发向导的第一页上,接受默认选择RTMP,然后单击继续。

步骤4:在向导的第二页上,单击Origin Domain Name字段,然后选择您在过程中创建的Amazon S3存储桶将媒体和JW Player文件上载到Amazon S3存储桶。如果您有很多Amazon S3存储桶,则可以键入存储桶名称的前几个字符来过滤列表。

第5步:创建分配

步骤6:CloudFront创建您的发行版后,您的发行版的“状态”列的值将从InProgress更改为Deployed。这应该不到15分钟。

CloudFront分配给您的分配的域名显示在分发列表中。域名也会显示在所选分发的“分发设置”页面上。)

嵌入RTMP媒体:

<div id='mediaplayer'>This text will be replaced</div>
<script type="text/javascript">
   jwplayer('mediaplayer').setup({
      'id': 'playerID',
      'width': '720',
      'height': '480',
      'file': 'rtmp://s1cxpk7od1m10r.cloudfront.net/cfx/st/your_streaming_file.mp4',
      'primary':'flash',
      'autostart' : 'true',
   });
</script>