我想用上传到S3的视频制作缩略图,我知道如何使用Node.js和ffmpeg制作缩略图。
根据此论坛帖子,我可以添加库:
ImageMagick是当前默认情况下唯一提供的外部库,但是在创建Lambda函数时,您可以在提供的zip文件中包括所有其他依赖项。请注意,如果这是本机库或可执行文件,则需要确保它在Amazon
Linux上运行。
但是如何将静态ffmpeg二进制文件放在AWS Lambda上?
以及如何使用AWS Lambda从Node.js调用此静态二进制文件(ffmpeg)?
我是Amazon AWS和Linux的新手
谁能帮我?
Naveen概述的过程是正确的,但是它掩盖了一个非常痛苦的细节-包括zip中的ffmpeg二进制文件并在您的lambda函数中访问它。
我刚经历过,它像这样:
/dist
每次构建时将其复制到其中)/tmp/
dir并
chmod
授予您访问权限
@loretoparisi
和@allen
的答案)。让我知道是否需要更多详细信息,我可以更新此答案。
copy和chmod(第2步)显然不是理想的……。很想知道是否有人找到了更好的方法来处理此问题,或者这是否是这种体系结构样式的典型方法。
正如@Allen所指出的,不再需要copy + chmod步骤了–我现在可以直接从/ var / task
/在Lambda函数中执行ffmpeg,而现在没有任何麻烦。确保将chmod 755
任何二进制文件上传到Lambda之前(也正如@Allen所指出的)。
我不再使用fluent-
ffmpeg来完成工作。相反,我正在更新PATH以包括process.env['LAMBDA_TASK_ROOT']
和执行简单的bash脚本。
在Lambda函数的顶部:
process.env['PATH'] = process.env['PATH'] + "/" + process.env['LAMBDA_TASK_ROOT']
对于使用ffmpeg的示例:lambda-pngs-to-mp4。
有关大量有用的lambda组件:lambduh。
更新更多详细信息:
我在这里下载了静态ffmpeg二进制文件。亚马逊建议启动EC2并在其中构建二进制文件供您使用,因为该环境将与Lambda运行的条件相同。大概是个好主意,但还有更多工作要做,这个静态下载对我有用。
我只将ffmpeg
二进制文件拉到项目的待归档/dist
文件夹中。
将zip上传到lambda时,它位于/var/task/
。无论出于什么原因,我都遇到了尝试在该位置使用二进制文件的访问问题,以及尝试在该位置编辑文件权限的更多问题。一个快速的解决方法是将二进制文件移至该目录/tmp/
并对其进行chmod
权限。
在Node中,您可以通过运行Shell child_process
。我所做的看起来像这样:
require('child_process').exec(
'cp /var/task/ffmpeg /tmp/.; chmod 755 /tmp/ffmpeg;',
function (error, stdout, stderr) {
if (error) {
//handle error
} else {
console.log("stdout: " + stdout)
console.log("stderr: " + stderr)
//handle success
}
}
)
这应该可以在lambda函数中为您提供可执行的ffmpeg二进制文件-但您仍然需要确保它在$ PATH中。
我放弃了fluent-
ffmpeg并使用节点来启动ffmpeg命令,转而只是从节点外启动bash脚本,所以对我来说,我必须/tmp/
在lambda函数的顶部添加路径:
process.env.PATH = process.env.PATH + ':/tmp/'
如果您使用fluent-ffmpeg,则可以通过以下方式将路径设置为ffmpeg:
process.env['FFMPEG_PATH'] = '/tmp/ffmpeg';
有点相关/无耻的自我插入:我正在研究一组模块,以使在Lambduh名称下从可组合模块中构建Lambda函数更加容易。可能会节省一些时间,使这些东西放在一起。一个简单的例子:使用lambduh-
execute处理这种情况很简单:
promises.push(execute({
shell: "cp /var/task/ffmpeg /tmp/.; chmod 755 /tmp/ffmpeg",
})
在哪里promises
可以实现一系列承诺。
问题内容: 我想用Java生成视频的缩略图预览。我主要是JMF,并且视频操作疏远了。 有一个简单的方法吗? 那编解码器呢?我需要处理吗? 是否支持任何视频类型?(包括Quicktime) 问题答案: 似乎有一些例子比我要发送给您的例子要好得多。 参见http://krishnabhargav.blogspot.com/2008/02/processing-videos-in- java.html
本文向大家介绍python制作图片缩略图,包括了python制作图片缩略图的使用技巧和注意事项,需要的朋友参考一下 缩略图 在很多时候我们都需要将图片按照同比例缩小有利于存储 但是一张张手动去改的话太麻烦了 今天我们就用python实现一个简单的将一个文件夹中的所有图片进行指定大小的调整 缩略前: 代码: 缩略后: 参数使用说明: 1、os模块,python的os模块封装了常见的文件和目录操作。
我对FFmpeg有点陌生,但是作为一个学习一些MySQL数据库的项目,我正在尝试创建一个视频上传网站。 当我尝试使用以下代码制作缩略图时: shell_exec("/usr/本地/bin/ffmpeg-ianim.flv-an-ss 00:00:03-an-r 1-vframe 1-ytest.jpg"); 没有发生任何事情,没有图像显示在与动画相同的目录中。flv,代码有问题吗,或者可能是什么问
问题内容: 我正在使用node.js构建应用程序,我已成功上传了视频,但需要为其生成视频缩略图。目前,我使用node exec执行ffmpeg的系统命令来制作缩略图。 此代码来自http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a- resumable-video-uploade-in-node- js/中 的教程 上面
问题内容: 如果我有YouTube视频URL,是否可以使用PHP和cURL从YouTube API获取关联的缩略图? 问题答案: 每个YouTube视频都有四个生成的图像。可以预计,它们的格式如下: 列表中的第一个是全尺寸图像,其他是缩略图图像。默认的缩略图图像(即,一个,,)为: 对于缩略图的高质量版本,请使用类似于以下内容的URL: 缩略图还有一个中等质量的版本,使用类似于HQ的URL: 对于
我尝试使用FFMPEG和这个库压缩视频:https://github.com/guardianproject/android-ffmpeg-java