
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (78)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (8830)
-
flient-ffmpeg getting error as "ffmpeg exited with code 1 : pipe:0 : Invalid data found when processing input"
6 avril 2023, par Abhishek RawalI am trying to create API where i need to get uploaded video and create thumbnail from that video. But conditions are :


- 

- Video should not store on local disk
- Once thumbnail is create it should not store on local disk, instead it should directly uploaded to AWS s3 bucket.






Following is the code i am trying with :




const ffmpeg = require('fluent-ffmpeg');
const stream = require('stream');

router.post('/thumbnail', upload.any(), (req, res) => {
 const videoBuffer = req.files[0].buffer;
 
 let readableVideoBuffer = new stream.PassThrough();
 readableVideoBuffer.write(videoBuffer);
 readableVideoBuffer.end()
 
 let bufferStream = new stream.PassThrough();
 
 ffmpeg(readableVideoBuffer)
 .on('filenames', function(filenames) {
 console.log('Will generate ' + filenames.join(', '))
 })
 .on('end', function() {
 console.log('Screenshots taken');
 })
 .on('error', (err) => {
 console.log(err);
 })
 .screenshots({
 count: 4,
 size: '100x100',
 timestamps: ['00:00:01.000'],
 })
 .writeToStream(bufferStream, { end: true }); /* while using this statement i am getting error */
 
 const buffers = [];
 bufferStream.on('data', function (buf) {
 buffers.push(buf);
 });
 bufferStream.on('end', function () {
 const outputBuffer = Buffer.concat(buffers);
 // use s3 bucket code here
 console.log('outputBuffer===========>', outputBuffer)
 });
})







so while calling this API my app is crashing and i am getting error as :




Error : ffmpeg exited with code 1 : pipe:0 : Invalid data found when
processing input




Blockquote


If i am not using this statement :




.writeToStream(bufferStream, end : true ) ;




then able to save file but in local disk, which is not required in my case.


Please help me to understand what is wrong in this code, how i can resolve it.
Any type of help is appreciated.


-
What is the right way to put data to abuffersrc and pull from abufersink when I have multiple inputs with FFMPEG "afir" filter ?
19 décembre 2022, par EvgeniiI want to understand why
av_buffersink_get_frame()
always returnAVERROR(EAGAIN)
.
I use this algorithm :

- 

- Open input file
input.mp3
, create decoder for input file - Open signal file
signal.wav
, create decoder for signal file - Create filter graph and inputs/outputs with function
avfilter_graph_parse2("[in0][in1]afir[out], &inputs, &outputs")
- Create
abuffersrc
for every inputs with names "in0", "in1" - Create one
abuffersink
for oneoutputs
with name "out" - Read and decode samples with methods
av_read_frame()
,avcodec_send_packet()
,avcodec_receive_frame()
, put samples to abuffersrc withav_buffersrc_add_frame()
and trying to read samples from abuffersink withav_buffersink_get_frame()
- HERE I getAVERROR(EAGAIN)
for every call














Please, help !


I've tried to read all samples and push its to abuffersrc for
input
andsignal
pipes in first step and and callav_buffersink_get_frame
one time in second step. I gotAVERROR(EGAIN)
again.

I've tried to config two outputs with names "in0" and "in1" and one input with name "out" and call
avfilter_graph_parse_ptr()
as done in here :

static AVFilterContext *init_buffersrc(AVCodecContext *decoder, AVFilterGraph *filter_graph, const char *pad_name) {
 AVFilterContext *buffersrc = NULL;
 uint8_t args[1024];

 snprintf(args, sizeof(args),
 "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%"PRIx64"",
 decoder->time_base.num, decoder->time_base.den, decoder->sample_rate, av_get_sample_fmt_name(decoder->sample_fmt), decoder->channel_layout);

 CHECK_AV(avfilter_graph_create_filter(&buffersrc, avfilter_get_by_name("abuffer"), pad_name, args, NULL, filter_graph));
 return buffersrc;
}

static AVFilterContext *init_buffersink(AVFilterGraph *filter_graph) {
 AVFilterContext *buffersink = NULL;

 CHECK_AV(avfilter_graph_create_filter(&buffersink, avfilter_get_by_name("abuffersink"), "out", NULL, NULL, filter_graph));
 return buffersink;
}

static void init_complex_graph(const char *desc, Context *ctx) {

 AVFilterGraph *filter_graph;
 AVFilterInOut *inputs = avfilter_inout_alloc();
 AVFilterInOut **outputs = (AVFilterInOut**) av_malloc(ctx->nb_input_files*sizeof(AVFilterInOut *));
 char *dump;
 uint8_t pad_name[64];

 filter_graph = ctx->filter_graph = avfilter_graph_alloc();
 filter_graph->nb_threads = 1;

 for (int i = 0; i< ctx->nb_input_files; ++i) {
 outputs[i] = avfilter_inout_alloc();
 }

 for (int i = 0; i < ctx->nb_input_files; ++i) {
 AVFilterContext *buffersrc;
 snprintf(pad_name, sizeof(pad_name), "in%d", i); 
 buffersrc = init_buffersrc(ctx->input_files[i]->decoder, filter_graph, pad_name);
 ctx->input_files[i]->buffersrc = buffersrc;
 outputs[i]->name = av_strdup(pad_name);
 outputs[i]->filter_ctx = buffersrc;
 outputs[i]->pad_idx = 0;
 if (i == ctx->nb_input_files - 1) {
 outputs[i]->next = NULL;
 }
 else {
 outputs[i]->next = outputs[i + 1];
 }
 }

 ctx->output_file->buffersink = init_buffersink(filter_graph);

 inputs->name = av_strdup("out");
 inputs->filter_ctx = ctx->output_file->buffersink;
 inputs->pad_idx =0;
 inputs->next = NULL;

 CHECK_AV(avfilter_graph_parse_ptr(filter_graph, desc, &inputs, outputs, NULL));

 CHECK_AV(avfilter_graph_config(filter_graph, NULL));
} 

// Call init_complex_graph("[in0][in1]afir[out]", SOME_CONTEXT);



and still nothing.


- Open input file
-
lavc/qsvdec : update HDR side data on output AVFrame
21 novembre 2022, par Haihao Xiang