
Recherche avancée
Autres articles (34)
-
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
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 (...) -
Configuration spécifique d’Apache
4 février 2011, parModules spécifiques
Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
Création d’un (...)
Sur d’autres sites (8844)
-
ffmpeg - how to make a preview with short bursts of scenes
13 avril 2018, par ThomasGiven a list of timestamps, how can I make a movie where I will extract x seconds at each of the timestamps ?
for example, if my list is [3, 8, 11], I would like to make a movie made of [3-4][8-9][11-12]
I know how to extract the frames at the timestamps, but not how to extract a chunk of the movie from a list.
-
FFmpeg av_interleaved_write_frame to buffer
2 juin 2022, par phantasmHi I am using FFmpeg Autogen C#. Everything works when I use mkv output as a file and h264 rtsp stream as input. Codec is libx264


ffmpeg.avio_open(&container->pb, filename, 2),
 fmpeg.avformat_write_header(container, null)
 ffmpeg.av_read_frame(inputContainer, &pkt)
 ffmpeg.av_interleaved_write_frame(container, &pkt).



Mkv file output is working perfect.
But when I am trying to open AVIOContext to the buffer


ffmpeg.avio_alloc_context(avio_ctx_buffer, 32768, 1, &bd, null, write, seek)



Seek Function


unsafe long seek(void* opaque, long offset, int whence)
 {
 buffer_data* bd = (buffer_data*)opaque;
 switch (whence)
 {
 case 0:
 bd->ptr = bd->buf + offset;
 return (long)bd->ptr;
 case 1:
 bd->ptr += offset;
 break;
 case 2:
 bd->ptr = (bd->buf + bd->size) + offset;
 return (long)bd->ptr;
 case 65536:
 return bd->size;
 default:
 return -1;
 }
 return 1;
 }



Write Function


unsafe int write(void* opaque, byte* buf, int buf_size)
 {

 buffer_data* bd = (buffer_data*)opaque;
 while ((ulong)buf_size > bd->room)
 {
 long offset = bd->ptr - bd->buf;
 bd->buf = (byte*)ffmpeg.av_realloc_f(bd->buf, 2, (ulong)bd->size);
 if (bd->buf == null)
 return ffmpeg.AVERROR(ffmpeg.ENOMEM);
 bd->size *= 2;
 bd->ptr = bd->buf + offset;
 bd->room = (ulong)(bd->size - offset);
 } 
 memcpy((IntPtr)bd->ptr, (IntPtr)buf, (UIntPtr)buf_size); 
 bd->ptr += buf_size;
 bd->room -= (ulong)buf_size;
 byte[] b = new byte[buf_size];
 Marshal.Copy((IntPtr)buf, b, 0, buf_size);
 using (var fs = new FileStream(@"D:\file1.mkv", FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
 {
 using (BinaryWriter writer = new BinaryWriter(fs))
 {
 writer.Write(b);
 }

 }
 return buf_size;
 }



Buffer Data


public unsafe struct buffer_data
 {
 public byte* buf;
 public long size;
 public byte* ptr;
 public ulong room; ///< size left in the buffer
 };



Result I am getting is 1 second mkv video(its size increases but vlc player is unable to play it).Also notice that writing to file is just for testing I am trying to keep mkv data in buffer.Thank you !!!. If smth missing please comment I will add


-
Anomalie #4777 (Nouveau) : Les labels et chaines de langue avec ou sans deux points.
8 mai 2021Des labels avec ou sans deux points...¶
Les chaines de langues des labels, historiques de SPIP, ont parfois des deux points, parfois pas.
Donc dès fois
'truc' => 'Truc'
, dès fois'truc' => 'Truc :'
C’est embêtant quand on veut quelque chose d’homogène.On se propose ici de réfléchir à une transition vers des chaines "sans deux points".
uniformiser_label¶
J’ai déjà introduit (dans SPIP 4.0-alpha) une fonction / filtre dans
inc/utils.php
et utilisée dans le plugin ’statistiques’ :uniformiser_label
.
Ce filtre, dans un squelette avec un idiome tel que<:module:chaine|uniformiser_label:>
enlève les espaces divers et : qui pourraient être présents.uniformiser_label_inline ?¶
Il faudrait trouver un autre filtre pour faire l’inverse : mettre systématiquement les deux points. Notamment pour des couples ou énumérations sur la même ligne "label : texte".
Trouver un nom du filtre pour ça n’est pas évident ; par contre on pense avoir trouvé à peu près la méthode- <span class="CodeRay"><span class="keyword">function</span> <span class="function">uniformiser_label_inline</span>(<span class="predefined-type">string</span> <span class="local-variable">$label</span>) : <span class="predefined-type">string</span> {
- <span class="local-variable">$label</span> = uniformiser_label(<span class="local-variable">$label</span>);
- <span class="keyword">return</span> _T(<span class="string"><span class="delimiter">'</span><span class="content">uniformiser_label_inline</span><span class="delimiter">'</span></span>, [<span class="string"><span class="delimiter">'</span><span class="content">label</span><span class="delimiter">'</span></span> => <span class="local-variable">$label</span>]);
- }
- <span class="comment">// avec la chaine de langue (pareil nom à trouver)</span>
- [
- <span class="comment">// ...</span>
- <span class="string"><span class="delimiter">'</span><span class="content">uniformiser_label_inline</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">@label@ :</span><span class="delimiter">'</span></span>
- ]
- </span>
ou… uniformiser_label_enumeration¶
Une autre solution pour la même chose, est de proposer de s’occuper directement des textes de couples "nom : texte" ou "nom : texte, texte, texte."
Mais c’est peut être plus difficile pour gérer les traductionsExemple
- <span class="CodeRay"><span class="keyword">function</span> <span class="function">uniformiser_label_enumeration</span>(<span class="predefined-type">string</span> <span class="local-variable">$label</span>, ...<span class="local-variable">$enums</span> = []) : <span class="predefined-type">string</span> {
- <span class="local-variable">$label</span> = uniformiser_label(<span class="local-variable">$label</span>);
- <span class="comment">// la première entrée peut être un déjà un tableau ?</span>
- <span class="keyword">if</span> (<span class="local-variable">$enums</span> <span class="keyword">and</span> <span class="predefined">is_array</span>(<span class="local-variable">$enums</span>[<span class="integer">0</span>])) {
- <span class="local-variable">$enums</span>[<span class="integer">0</span>] = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">, </span><span class="delimiter">'</span></span>, <span class="local-variable">$enums</span>[<span class="integer">0</span>]);
- }
- <span class="local-variable">$enums</span> = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">, </span><span class="delimiter">'</span></span>, <span class="local-variable">$enums</span>);
- <span class="keyword">return</span> <span class="predefined">trim</span>(_T(<span class="string"><span class="delimiter">'</span><span class="content">label_enumeration</span><span class="delimiter">'</span></span>, [<span class="string"><span class="delimiter">'</span><span class="content">label</span><span class="delimiter">'</span></span> => <span class="local-variable">$label</span>, <span class="string"><span class="delimiter">'</span><span class="content">enums</span><span class="delimiter">'</span></span> => <span class="local-variable">$enums</span>]));
- }
- <span class="comment">// avec la chaine de langue (pareil nom à trouver)</span>
- [
- <span class="comment">// ...</span>
- <span class="string"><span class="delimiter">'</span><span class="content">label_enumeration</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">@label@ : @enums@.</span><span class="delimiter">'</span></span>
- ]
- </span>
Ça veut dire ici que toutes les langues ont "virgule" en séparateur…
Quelques notes sur les deux points¶
Je suppose qu’ulitiser le terme "deux_points" dans les chaines de langue ne marche pas car ce n’est pas très sémantique. Mais pas facile de trouver un super terme.
https://www.noslangues-ourlanguages.gc.ca/fr/cles-de-la-redaction/deux-points
« On utilise le deux-points pour annoncer ce qui s’en vient dans le texte, que ce soit un exemple, une énumération, une explication, une citation, un discours direct, une analyse ou un récit. Le deux-points sert aussi à annoncer un jugement, une synthèse, une conclusion, une cause, une conséquence, etc. »