
Recherche avancée
Autres articles (80)
-
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...) -
Encodage et transformation en formats lisibles sur Internet
10 avril 2011MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...) -
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...)
Sur d’autres sites (6716)
-
AWS Lambda and Fluent FFMPEG error "cannot read property "isStream" of undefined"
29 mai 2021, par Travis Leeso here's the goal : convert a .webm file hosted in an S3 into a gif and upload that to a new bucket. This all works fine when run locally, but when trying to translate it into a lambda, fluent-ffmpeg throws errors when it runs the command.


Here's the code snippet :


ffmpeg(new URL(vid))
 .outputOptions("-vf", "scale=320:-1:flags=lanczos,fps=14")
 .on('progress', () => {
 console.log('progress');
 })
 .on('end', () => {
 //Do stuff with the result when it is done
 })
 .output(newKey)
 .run(newKey);



in this snippet, "vid" is a presigned GET url for an S3 bucket containing the .webm video file, and "newKey" is the name of the new bucket (and a temporary writeStream/File that is created in the lambda to store the new .gif file until we upload it to S3 - not super relevant to this issue).


What should happen (and does locally) is that a new output is created containing the converted .gif file


What happens when it is deployed in a lambda is that it reaches the .outputOptions call and throws a type error saying that it cannot read property isStream of undefined.


At first glance, this seems like I simply don't have FFMPEG installed in the lambda, but I do. I have tried with the prebuilt layer using NodeJS 10 found here : https://serverlessrepo.aws.amazon.com/applications/us-east-1/145266761615/ffmpeg-lambda-layer ,
with a NodeJS 12 layer that was built by some engineers here previously, and tried building a NodeJS 14 FFMPEG layer myself and using that. I tried for all three using no configuration and letting it call the PATH ffmpeg, using the FFMPEG_PATH and FFPROBE_PATH environment variables set to either what was specified in the previous layers, or what I made it in the newly built one, and even manually setting the path to the executables using the setFfmpegPath and setFfprobePath functions found on the fluent-ffmpeg object.


Lastly, I even tried bundling the executables in with the actual lambda code itself and uploading it through an S3, trying all three above methods of getting it to point to the correct paths once again to no avail.


I'm seriously in need of help if anyone else has encountered something similar or just might know what is going on. I'm at wit's end here trying to figure this out.


-
ffmpeg crashes with "Internal bug", "Failed to inject frame into filter network" while trying to convert PNG files into an animated gif using filters
12 août 2022, par EigentlichOraclerffmpeg version : ffmpeg version 4.2.7-0ubuntu0.1


Kernel : 5.4.0-122-lowlatency #138-Ubuntu SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux


PNG-Images : 996 pieces, all equal in size : 1000x50


Then trying to build palette using palettegen :


export filters="scale=1000:-1:flags=lanczos"
export palette=./stripes_palette.png
ffmpeg -v warning -i ./palette_source_stripes.png -vf "$filters,palettegen=stats_mode=diff" -y $palette
[Parsed_palettegen_1 @ 0x55f0eea30e00] Dupped color: FF63000D



Palette file has been created, looks good so far. Then I tried to convert all 996 PNG files into one single (space optimized) animated GIF file using paletteuse :


ffmpeg -v warning -framerate 5 -thread_queue_size 2048 -i ./tmp/temp.%04d.png -i $palette -lavfi "$filters,paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" -r 5 -loop -1 -y testanim.gif
Error while filtering: Internal bug, should not have happened
Failed to inject frame into filter network: Internal bug, should not have happened
Error while processing the decoded data for stream #0:0



The reason for "-framerate 5" for the input and "-r 5" for the output is : I wanted the animated GIF to use a determined time for running through animation. It already had worked out without using complex filtering, but the results were huge GIF files which are hard to handle.
But even when I avoid both framerate parameters, still the same error message occurs.


Should I look deeper into the "Dupped color" which has been mentioned ? Did anybody encounter a similar issue using ffmpeg ?
I'm not used to deal with filters (nor "complex filters") in ffmpeg, I'm very new at this, but I've found no tips regarding an ffmpeg crash like I've right here.


------------------------------- EDIT 2022-08-12/1 ---------------------


Same error occurs with current stable version
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers


------------------------------- EDIT 2022-08-12/2 ---------------------


Found workaround, see answer below


-
Revert "Revert "lavfi/buffersrc : push the frame deeper if requested.""
16 juillet 2017, par Nicolas GeorgeRevert "Revert "lavfi/buffersrc : push the frame deeper if requested.""
This reverts commit 04aa09c4bcf2d5a634a35da3a3ae3fc1abe30ef8
and reintroduces 0ff5567a30be6d7c804e95997ae282d6bacd76c3 that
was temporarily reverted due to minor regressions.It also reverts e5bce8b4ce7b1f3a83998febdfa86a3771df96ce that fixed FATE refs.
The fate-ffm change is caused by field_order now being set
on the output format because the first frame arrives earlier.
The fate-mxf change is assumed to be the same.