'Thumbnail creation using azure function nodejs
I am trying to use azure function to create thumbnail(png) from .mp4 file uploaded to azure storage location. Azure function is automatically triggered when a new video file is uploaded.
The issue that I am facing right now is that FFMPEG required local storage to create thumbnail and azure function does not have local storage attached to it.
I tried to find a way to use azure storage too but we need data stream(buffer) to upload file to azure storage and FFMPEG does not provide output in data stream(buffer).
Language : NodeJS
Following is the code that I am using with FFMPEG:
fs.writeFileSync(pathToCreate, data);
const targetPath = path.join(dirToCreate, 'thumbnail.png');
const width = parseInt(process.env.WIDTH || "360");
const ffmpeg = spawnSync(
ffmpegStatic, [
"-y",
"-i",
`${pathToCreate}`,
"-ss",
"00:00:01",
"-vf",
`scale=${width}:-1`,
"-frames:v",
"1",
`${targetPath}`
], {
shell: true
});
Error when trying to read file is as following:
Error: ENOENT: no such file or directory, open /tmp/temp-file.png
Does anyone has any idea on how to solve this problem?
Regards
Solution 1:[1]
I would like to recommend the procedure of using fluent-ffmpeg
because it can deal with both the images and video file types using withsize()
method.
Refer the procedure mentioned in : https://www.npmjs.com/package/video-thumbnail-generator to generate thumbnail from video.
Refer the procedure mentioned in : https://www.npmjs.com/package/fluent-ffmpeg/v/1.7.0#generating-thumbnails to generate thumbnail from fluent-ffmpeg
const ffmpeg = require('fluent-ffmpeg');
new ffmpeg({ source: '/path/to/video1.extension' })
.withSize('mention size')
.on('error', function(err) {
console.log('An error occurred: ' + err.message);
})
.on('end', function(name_of_file) {
console.log('Thumbnail was successfully generated ' + filenames.join(', '));
})
.takeScreenshots(5, '/path/to/location_of_file');
to use the above code block, you must install ffmpeg
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | SairamTadepalli-MT |