
Recherche avancée
Autres articles (37)
-
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 -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
Ajouter notes et légendes aux images
7 février 2011, parPour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
Modification lors de l’ajout d’un média
Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)
Sur d’autres sites (5613)
-
rtsp timeout av_read_frame
30 novembre 2012, par user1175197I am using ffmpeg to play an RTSP stream. I have a loop like
while (av_read_frame(formatContext, packet)>=0)
{
doWork();
}I can watch the stream as long as there is something moving in front of the camera. But whenever the view is stable the above function returns EOF as I checked with av_strerror. Any ideas why and how to fix it ?
thanks
-
FFmpeg encoding through h264_qsv : pts < dts
29 décembre 2023, par MarioI'm modifying a portion of code that encodes input frames in an output mp4 file via the h264 software encoder which works quite well. Most of the code comes from https://ffmpeg.org/doxygen/6.0/mux_8c-example.html.


I changed the "working" code to use the h264_qsv hardware accelerated encoder. After a lot of work the new code produces h264 encoded frames. For testing purpose I can write them with




fwrite(pkt->data, pkt->size, 1, fout)




and mpv displays frames correctly (with some warnings).


When I use regular :




av_interleaved_write_frame(fmt_ctx, pkt)




(as from previously working code) returns an error and on stderr :




[mp4 @ 0x7f82a80b3b40] pts (-1574122160956548608) < dts
(1574122160956547584) in stream 0




To look for the cause I added the following lines just before av_interleaved_write_frame(). I read that it may be a non-fatal error and so I continue after the errors, but there isn't output.




frame->pts=210

pkt->pts=-1574122160956548608

pkt->dts=1574122160956547584

[mp4 @ 0x7effb40b3b40] pts (-1574122160956548608) < dts (1574122160956547584) in stream 0

...

frame->pts=240

pkt->pts=-1574122160956548608

pkt->dts=1574122160956548096

[mp4 @ 0x7effb40b3b40] pts (-1574122160956548608) < dts (1574122160956548096) in stream 0



I did another test assigning incremental values to pkt->pts and pkt->dts, it works but resulting fps is wrong, and I don't think it is the right solution !


Why does the av_interleaved_write_frame(fmt_ctx, pkt) function returns an error with h264_qsv encoder ? Who should set pkt->pts and pkt->dts ?


-
FFMpeg C++ How to create a filter with multiple outputs ?
11 septembre 2020, par GoodSimonFor example, we have one
AVFrame
with a size of 128x128 pixels and the task is to split theAVFrame
into 4 parts (4 separateAVFrame
). To do this, I fill the graph with filters using theavfilter_graph_parse2(...)
function, and then callavfilter_graph_config(...)
.

Let's start. Let's cut out the top left corner. To crop a frame, we need to use the
crop
filter, which means we initialize the AVFilterGraph graph with the line :

buffer = width = 128: height = 128: pix_fmt = 2: time_base = 1/25, pixel_aspect = 128/64 [pad_in];
[pad_in] crop = w = 64: h = 64: x = 0: y = 0, buffersink;



Everything works great ! Now let's try to make several outputs :


buffer = width = 128: height = 128: pix_fmt = 2: time_base = 1/25, pixel_aspect = 128/64 [pad_in];
[pad_in] crop = w = 64: h = 64: x = 0: y = 0, buffersink;
[pad_in] crop = w = 64: h = 64: x = 64: y = 0, buffersink;
[pad_in] crop = w = 64: h = 64: x = 0: y = 64, buffersink;
[pad_in] crop = w = 64: h = 64: x = 64: y = 64, buffersink



As you can see, we have one
buffer
for the input image, 4crop
filters for cutting each piece, and 4buffersink
filters for the output images. The callavfilter_graph_parse2(...)
returns 0, which is good, butavfilter_graph_config()
returns the error code-22 == AVERROR(EINVAL)
and the message is output to the console :Input pad "default" with type video of the filter instance "Parsed_crop_3" of crop not connected to any source.


I am asking for your help in creating a filter with multiple outputs.