
Recherche avancée
Autres articles (66)
-
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users. -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
Sur d’autres sites (10848)
-
ffmpeg capture output from child window
3 janvier 2013, par glitchymeusing
xwininfo -all
I'm able to see the stats of any window, along with its child windowsxwininfo: Window id: 0x3c000ba "Electro - The Slag & Prototype Raptor - Crescendo - YouTube - Mozilla Firefox"
Root window id: 0xa8 (the root window) (has no name)
Parent window id: 0xc001b8 (has no name)
2 children:
0x3c00175 (has no name): () 1388x876+0+0 +52+24
5 children:
0x3d210ab (has no name): () 854x510+225+197 +277+221
1 child:
0x3d210ac (has no name): () 854x510+0+0 +277+221
1 child:
0x40404de "plugin-container": ("plugin-container" "Plugin-container") 854x510+0+0 +277+221
2 children:
0x40404e1 (has no name): () 854x510+0+0 +277+221
0x40404df (has no name): () 1x1+-1+-1 +276+220
0x3ddbcf2 (has no name): () 640x390+225+162 +277+186
1 child:
0x3ddbcf3 (has no name): () 640x390+0+0 +277+186
1 child:
0x403d545 "plugin-container": ("plugin-container" "Plugin-container") 640x390+0+0 +277+186
2 children:
0x403d548 (has no name): () 640x390+0+0 +277+186
0x403d546 (has no name): () 1x1+-1+-1 +276+185
0x3dac7f9 (has no name): () 640x390+225+162 +277+186
1 child:
0x3dac7fa (has no name): () 640x390+0+0 +277+186
1 child:
0x4039d8b "plugin-container": ("plugin-container" "Plugin-container") 640x390+0+0 +277+186
2 children:
0x4039d8e (has no name): () 640x390+0+0 +277+186
0x4039d8c (has no name): () 1x1+-1+-1 +276+185
0x3c3f939 (has no name): () 640x390+225+197 +277+221
1 child:
0x3c3f93a (has no name): () 640x390+0+0 +277+221
1 child:
0x4011918 "plugin-container": ("plugin-container" "Plugin-container") 640x390+0+0 +277+221
2 children:
0x401191b (has no name): () 640x390+0+0 +277+221
0x4011919 (has no name): () 1x1+-1+-1 +276+220
0x3c0d1dc (has no name): () 1x1+0+97 +52+121
1 child:
0x3c0d1dd (has no name): () 1x1+0+0 +52+121
1 child:
0x4002c1e "plugin-container": ("plugin-container" "Plugin-container") 1x1+0+0 +52+121
2 children:
0x4002c40 (has no name): () 1x1+0+0 +52+121
0x4002c1f (has no name): () 1x1+-1+-1 +51+120
0x3c000bb (has no name): () 1x1+-1+-1 +51+23
Absolute upper-left X: 52
Absolute upper-left Y: 24
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 1388
Height: 876
Depth: 24
Visual: 0x23
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +52+24 -0+24 -0-0 ç0
-geometry 1388x876-0-0
Bit gravity: NorthWestGravity
Window gravity: NorthWestGravity
Backing-store hint: NotUseful
Backing-planes to be preserved: 0xffffffff
Backing pixel: 0
Save-unders: No
Someone wants these events:
KeyPress
KeyRelease
ButtonPress
ButtonRelease
EnterWindow
LeaveWindow
PointerMotion
Exposure
VisibilityChange
StructureNotify
FocusChange
PropertyChange
Do not propagate these events:
Override redirection?: No
Window manager hints:
Client accepts input or input focus: Yes
Initial state is Normal State
Displayed on desktop 0
Window type:
Normal
Window state:
Maximized Vert
Maximized Horz
Process id: 4087 on host jb
Frame extents: 0, 0, 0, 0
Normal window size hints:
Program supplied minimum size: 18 by 97
Program supplied maximum size: 1073741824 by 1073741824
Program supplied window gravity: NorthWestGravity
No zoom window size hints defined
No window shape defined
No border shape definedHowever, if I try capturing from the screen given the size and offset of the child window, then I risk losing data when another window floats ontop of it, I switch to another tab while recording, I resize the child window, or move the child window. Instead, I'd like to use ffmpeg to capture from specifically that child window.
Ideas ? Tips ? Maybe some other hacks to accomplish this ? Thanks :)
-
Cannot display a decoded video frame on Raylib
20 décembre 2024, par gabriel_tisoI'm trying to explore
libav
andraylib
just to understand how audio and video work, and also to learn how to build nice interfaces using theraylib
project. I've implemented a simple struct capable of decoding audio and video frames. When a video frame appears, I convert it to theRGBA
format, which packs the values into 32bpp. This is the setup :

if (av_image_alloc((uint8_t **)media->dst_frame->data,
 media->dst_frame->linesize, media->ctxs[0]->width,
 media->ctxs[0]->height, AV_PIX_FMT_RGBA, 1) < 0) {
 fprintf(stderr, "Failed to setup dest image\n");
 return -1;
 }

 media->sws_ctx = sws_getContext(
 media->ctxs[0]->width, media->ctxs[0]->height, media->ctxs[0]->pix_fmt,
 media->ctxs[0]->width, media->ctxs[0]->height, AV_PIX_FMT_RGBA,
 SWS_BILINEAR, NULL, NULL, 0);

 // Later on, in the decode function:
 int ret = sws_scale(media->sws_ctx, media->frame->data,
 media->frame->linesize, 0, media->frame->height,
 media->dst_frame->data, media->dst_frame->linesize);




In the main file, I init raylib, and setup the necessary steps to load the texture (here I'm trying to fetch the first video frame in order to show the user a preview of the video, later on I plan to reset the stream to allow a correct playback routine). I think the format of the image is right.


Image previewImage =
 GenImageColor(videoArea.width, videoArea.height, BLACK);
 // I assume this makes the formats compatible
 ImageFormat(&previewImage, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8);

 Texture2D videoTexture = LoadTextureFromImage(previewImage);
 UnloadImage(previewImage);




 if (!state->has_media) {
 DrawText("Drop a video file here!", videoArea.x + 10,
 videoArea.y + 10, 20, GRAY);
 } else {
 if (state->first_frame) {
 do {
 decode_packet(state->media);
 } while (!is_frame_video(state->media));

 UpdateTexture(videoTexture, state->media->dst_frame->data[0]);

 state->first_frame = 0;
 }
 }

 DrawTexture(videoTexture, videoArea.x, videoArea.y, WHITE);



Anyway, this is what I get when a mp4 file is dropped :



It seems like an alignment issue maybe ? Can someone point me in the right direction in order to correctly solve this problem ?


-
Anomalie #4849 (Nouveau) : Lisibilité du tableau des statistiques
12 juillet 2021, par JLuc -#2693 a été fermé suite à la correction du code, mais la présentation du tableau de résultat n’a pas évolué et pour le comprendre, il a fallu que j’étudie le code. Du coup j’ai compris qu’il y a un petit problème de conception que je signale ici, ainsi que le manque de clarté dans un énoncé.
La colonne de gauche présente 2 listes à la suite.
Ces 2 listes sont séparées par un intertitre centré "..." qui indique qu’il y a une forme d’interruption dans la continuité d’une même liste.
Or ce n’est pas le cas puisque l’analyse du code révèle que :
- la première liste présente les 30 articles les plus populaires
- la 2eme liste présente la popularité des 10 articles les plus récents (classés du plus récent au plus ancien)
L’ordonnancement étant totalement différent, il s’agit bien de 2 listes qui devraient être perçues comme totalement différentes...
MAIS
- il y a quand même une interférence entre ces 2 listes puisque les articles présents dans la première (les articles populaires) sont exclus de la seconde.
- il n’y a qu’un seul titre pour ces 2 listes, qui reflète l’ambigüité du mélange (malheureusement sans l’éclairer) : « Afficher les visites pour les articles les plus populaires et pour les derniers articles publiés : « Afficher les visites pour les articles les plus populaires et pour les derniers articles publiés : »
Mais ce n’est pas possible, de même qu’il n’est pas possible de lister dans une même liste des voitures triées par vitesse maximale et des pommes triées par teneur en sucre.Donc il faudrait
- avoir un titre différent pour chacune de ces listes
- à mon avis aussi retirer le doublon qui rend difficile la lecture de la 2eme liste car autant il est simple de dire "c’est la popularité des articles les plus récents" (et intéressant d’avoir une telle liste), autant il est complexe d’expliquer et de comprendre "C’est la popularité des articles les plus récents sauf s’ils font partie des 30 plus populaires du site" (et difficile à utiliser une telle information circonluée).
- ne pas avoir de séparateur "[...]" entre ces 2 listes. Ce ne sera pas utile avec le 2eme intertitre.Par ailleurs le texte explicatif "Comment lire ce tableau" en bas de la colonne de droite contient une explication de ce qu’est la "popularité de l’article : (une estimation du nombre de visites quotidiennes qu’il recevra si le rythme actuel de consultation se maintient)". L’emploi du futur + l’hypothèse "si le rythme actuel de consultation se maintient" donnent des pistes incomplètes et ne permettent pas de comprendre ce que c’est.
- Spontanément j’avais retenu le futur et compris que c’était le nombre total final de visite de cet article, à supposer que sa fréquentation s’épuise mais sur quelle durée ? ça ne voulait rien dire.
- Maintenant je comprend que c’est une estimation du nombre de visite quotidienne à partir d’une "moyenne instantannée" de fréquentation. Mais sur quelle durée se fait cette moyenne instantanée ? La fréquentation estimée se fait elle aussi sur la base d’une moyenne instantanée pour les articles ayant plus d’une journée d’âge ou bien c’est la fréquentation de la veille qui est prise dans ce cas ? Ça ne veut pas dire grand chose encore...
En bref : ça en dit trop ou pas assez. On peut en dire moins avec simplement "une estimation du nombre de visites quotidiennes". Mais pour en dire plus et être plus précis... faudrait donner les infos manquantes.