
Recherche avancée
Médias (91)
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Lights in the Sky
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Head Down
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Echoplex
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Discipline
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Letting You
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (52)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Changer son thème graphique
22 février 2011, parLe thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
Modifier le thème graphique utilisé
Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
Il suffit ensuite de se rendre dans l’espace de configuration du (...)
Sur d’autres sites (11067)
-
Can't open encoder when use libavcodec
1er novembre 2013, par liuyanghejerryI’m using libavcodec, version 9.7, to write a simple demo, almost exactly like example in official example.
However, I can’t open encoder. Also,
av_opt_set(context->priv_data, "preset", "slow", 0)
always leads to crush.This is my code :
// other code...
int ret = 0;
avcodec_register_all();
AVCodec* codec = NULL;
AVCodecContext* context = NULL;
AVFrame* frame = NULL;
uint8_t endcode[] = { 0, 0, 1, 0xb7 };
codec = avcodec_find_encoder(AV_CODEC_ID_H264);
if(!codec){
qDebug()<<"cannot find encoder";
return;
}
qDebug()<<"encoder found";
context = avcodec_alloc_context3(codec);
if(!context){
qDebug()<<"cannot alloc context";
return;
}
qDebug()<<"context allocted";
context->bit_rate = 400000;
/* resolution must be a multiple of two */
context->width = 352;
context->height = 288;
/* frames per second */
context->time_base= (AVRational){1,25};
context->gop_size = 10; /* emit one intra frame every ten frames */
context->max_b_frames=1;
context->pix_fmt = AV_PIX_FMT_YUV420P;
qDebug()<<"context init";
// av_opt_set(context->priv_data, "preset", "slow", 0); // this will crush
AVDictionary *d = NULL;
av_dict_set(&d, "preset", "ultrafast",0); // this won't
ret = avcodec_open2(context, codec, &d);
if ( ret < 0) {
qDebug()<<"cannot open codec"</ other code...This outputs :
encoder found
context allocted
context init
cannot open codec -22
[libx264 @ 0340B340] [IMGUTILS @ 0028FC34] Picture size 0x10 is invalid
[libx264 @ 0340B340] ignoring invalid width/height values
[libx264 @ 0340B340] Specified pix_fmt is not supported
I don’t think the width/height is invalid and format there either. I have no idea what’s wrong here.
Any help. plz ?
-
RuntimeError : abort(OOM). Build with -s ASSERTIONS=1 for more info
26 avril 2021, par KhoPhiI'm using ffmpeg.wasm 0.9.7 (at the time of this question).
Browser is Brave (Version 1.23.71 Chromium : 90.0.4430.72 (Official Build) (64-bit))


I get this error running an overlay ffmpeg command in the browser, slapping an png over an hevc mp4 4K video of size, almost 40 Megabyte.


RuntimeError: abort(OOM). Build with -s ASSERTIONS=1 for more info.


Here's my code in Angular. Stripped down for brevity


async generatePreviews(event: any) {

 if (!ffmpeg.isLoaded()) {
 await ffmpeg.load();
 }

 for (let index = 0; index < this.files.length; index++) {

 this.video = this.files[index];
 const file_name = this.video.name.split('.')[0] + '-preview.mp4';

 ffmpeg.FS('writeFile', 'tempLogo.png', await fetchFile(this.watermark));
 ffmpeg.FS('writeFile', 'tempVideo.mp4', await fetchFile(this.video));


 // working command in normal terminal
 // ffmpeg -i tempVideo.mp4 -i tempLogo.png -filter_complex "overlay=(W-w)/2:(H-h)/2" temp.mp4

 await ffmpeg.run(
 '-i',
 'tempVideo.mp4',
 '-i',
 'tempLogo.png',
 '-filter_complex',
 'overlay=(W-w)/2:(H-h)/2',
 'temp.mp4'
 );

 const data = ffmpeg.FS('readFile', 'temp.mp4');

 var blob = new Blob([data.buffer], { type: 'video/mp4' });
 saveAs(blob, file_name); // using filesaver.js to save the blob

 }
 }
}




In chrome, I read up to 2Gb of file is possible to convert. Not sure why the OOM issues. Any settings I need to set or changes I need to do ?


Update (4/26/2021)


This thread offered a solution, by building the ffmpeg wasm with a few tweaks. I am able to build, but using the built files even causes the OOM faster than the npm built from the ffmpeg wasm repo.


-
Decoder return of av_find_best_stream vs. avcodec_find_decoder
7 octobre 2016, par Jason CThe docs for libav’s
av_find_best_stream
function (libav 11.7, Windows, i686, GPL) specify a parameter that can be used to receive a pointer to an appropriateAVCodec
:decoder_ret - if non-NULL, returns the decoder for the selected stream
There is also the
avcodec_find_decoder
function which can find anAVCodec
given an ID.However, the official demuxing + decoding example uses
av_find_best_stream
to find a stream, but chooses to useavcodec_find_decoder
to find the codec in lieu ofav_find_best_stream
’s codec return parameter :ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
...
stream_index = ret;
st = fmt_ctx->streams[stream_index];
...
/* find decoder for the stream */
dec = avcodec_find_decoder(st->codecpar->codec_id);As opposed to something like :
ret = av_find_best_stream(fmt_ctx, type, -1, -1, &dec, 0);
My question is pretty straightforward : Is there a difference between using
av_find_best_stream
’s return parameter vs. usingavcodec_find_decoder
to find theAVCodec
?The reason I ask is because the example chose to use
avcodec_find_decoder
rather than the seemingly more convenient return parameter, and I can’t tell if the example did that for a specific reason or not. The documentation itself is a little spotty and disjoint, so it’s hard to tell if things like this are done for a specific important reason or not. I can’t tell if the example is implying that it "should" be done that way, or if the example author did it for some more arbitrary personal reason.