Recherche avancée

Médias (1)

Mot : - Tags -/ogv

Autres articles (54)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (5749)

  • Cannot save animation in matplotlib : Windows permission denied

    13 mai 2015, par Vladimir

    I’ve been trying for a day long to sort this out, checking similar threads but with no success.
    Stretch’s Cannot save matplotlib animation with ffmpeg helped with previous errors (I had ffmpeg path wrong), but I kept getting Access denied after fixing it.

    My ffmpeg binary is on C:\ffmpeg\bin

    A nice alternative would be to able to export gif files, but I keep getting an ascii error with imagemagick. I think both problems are related, so I wanted to sort out the ffmpeg first.

    I think the problem might have to do with the fact I’m working with Canopy (in Windows 8 64bit), which pretty much hegemonized my path variable and broke some things along the way (e.g. I can’t open IDLE since I installed Canopy, didn’t tried to fix that yet). As I fixed things along the way I found at least 3 distinct path variables, all of which I updated : windows advanced settings path (set manually), windows console path (set via console with setx), and sys.path (set or checked at runtime), adding ";C:\ffmpeg\bin", where ffmpeg effectively is. Regardless I sort out the problem or not, I would like to learn which of these environment variables are relevant for what, I find it very confusing.

    The code is the following :

    # -*- coding: utf-8 -*-
    import sys
    import numpy as np
    from matplotlib import pyplot as plt
    from matplotlib import animation
    plt.rcParams['animation.ffmpeg_path'] = r'C:\ffmpeg\bin'
    if r'C:\ffmpeg\bin' not in sys.path: sys.path.append(r'C:\ffmpeg\bin')

    fig = plt.figure()
    ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
    line, = ax.plot([], [], lw=2)

    def init():
       line.set_data([], [])
       return line,

    def animate(i):
       x = np.linspace(0, 2, 1000)
       y = np.sin(2 * np.pi * (x - 0.01 * i))
       line.set_data(x, y)
       return line,

    anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=20, blit=True)
    plt.show()

    # This case generates Windows err: Access Denied
    FFwriter = animation.FFMpegWriter()
    # anim.save(r'C:\basic_animation.mp4', writer = FFwriter, fps=30)

    # This case generates UnicodeDecodeError:'ascii' codec can't decode byte 0xa0 in position 3
    # anim.save(r'C:\animation.gif', writer='imagemagick', fps=30)

    The traceback for anim.save(r'C:\basic_animation.mp4', writer = FFwriter, fps=30) :

    %run "C:\Users\Yahveh\Documents\Vlad\Investigacion\animation saving.py"
    ---------------------------------------------------------------------------
    WindowsError                              Traceback (most recent call last)
    C:\Users\Yahveh\Documents\Vlad\Investigacion\animation saving.py in <module>()
        27 # This case generates Windows err: Access Denied
        28 FFwriter = animation.FFMpegWriter()
    ---> 29 anim.save(r'C:\basic_animation.mp4', writer = FFwriter, fps=30)
        30
        31 # This case generates UnicodeDecodeError:'ascii' codec can't decode byte 0xa0 in position 3

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)
       759         # since GUI widgets are gone. Either need to remove extra code to
       760         # allow for this non-existant use case or find a way to make it work.
    --> 761         with writer.saving(self._fig, filename, dpi):
       762             for data in zip(*[a.new_saved_frame_seq()
       763                               for a in all_anim]):

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\contextlib.pyc in __enter__(self)
        15     def __enter__(self):
        16         try:
    ---> 17             return self.gen.next()
        18         except StopIteration:
        19             raise RuntimeError("generator didn't yield")

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in saving(self, *args)
       184         '''
       185         # This particular sequence is what contextlib.contextmanager wants
    --> 186         self.setup(*args)
       187         yield
       188         self.finish()

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in setup(self, fig, outfile, dpi, *args)
       174         # Run here so that grab_frame() can write the data to a pipe. This
       175         # eliminates the need for temp files.
    --> 176         self._run()
       177
       178     @contextlib.contextmanager

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in _run(self)
       202                                       stdout=output, stderr=output,
       203                                       stdin=subprocess.PIPE,
    --> 204                                       creationflags=subprocess_creation_flags)
       205
       206     def finish(self):

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
       707                                 p2cread, p2cwrite,
       708                                 c2pread, c2pwrite,
    --> 709                                 errread, errwrite)
       710         except Exception:
       711             # Preserve original exception in case os.close raises.

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
       955                                          env,
       956                                          cwd,
    --> 957                                          startupinfo)
       958             except pywintypes.error, e:
       959                 # Translate pywintypes.error to WindowsError, which is

    WindowsError: [Error 5] Acceso denegado
    </module>

    The traceback for anim.save(r'C:\animation.gif', writer='imagemagick', fps=30) :

    In [8]: %run "C:\Users\Yahveh\Documents\Vlad\Investigacion\animation saving.py"
    ---------------------------------------------------------------------------
    UnicodeDecodeError                        Traceback (most recent call last)
    C:\Users\Yahveh\Documents\Vlad\Investigacion\animation saving.py in <module>()
        30
        31 # This case generates UnicodeDecodeError:'ascii' codec can't decode byte 0xa0 in position 3
    ---> 32 anim.save(r'C:\animation.gif', writer='imagemagick', fps=30)

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)
       765                     # TODO: Need to see if turning off blit is really necessary
       766                     anim._draw_next_frame(d, blit=False)
    --> 767                 writer.grab_frame(**savefig_kwargs)
       768
       769         # Reconnect signal for first draw if necessary

    C:\Users\Yahveh\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\animation.pyc in grab_frame(self, **savefig_kwargs)
       225             verbose.report('MovieWriter -- Error '
       226                            'running proc:\n%s\n%s' % (out,
    --> 227                                                       err), level='helpful')
       228             raise
       229

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 3: ordinal not in range(128)
    </module>

    Stared at them for a while.

    Thanks for your time !

    UPDATE : I followed the steps in this post for granting access to both C :\ffmpeg and destination folder, but no luck :(

  • Anomalie #4129 (En cours) : Echec de la première connexion des utilisateurs LDAP et non création d...

    11 avril 2018, par Franck R

    version de SPIP : 3.2.1 [23954]
    version de PHP : 5.6.33
    version de MySQL : 14.14

    Jusqu’à il n’y a pas si longtemps (désolé pour l’imprécision, on ajoute pas des utilisateurs si fréquemment), les utilisateurs LDAP pouvaient s’authentifier sur SPIP et l’utilisateur SPIP était créé dans la base de donnée. J’ai remarqué récemment que les nouveaux arrivants ne pouvaient plus s’authentifier, et donc créer leur compte, de cette manière.

    Problème

    Ce problème a été remarqué sur le site en production mis à jour en 3.2.1, ainsi que sur une installation de test 3.2.1 propre (attention au bug de config LDAP ).

    1. Le site SPIP est configuré pour utiliser l’authentification LDAP ;
    2. Un nouvel utilisateur est créé dans le LDAP ;
    3. Il se connecte au site SPIP avec ses identifiants LDAP ;
    4. La connexion échoue systématiquement.

    La demande #3824 offre une solution avec _AUTORISER_AUTH_FAIBLE mais elle ne me semble pas satisfaisante sachant que LDAP est configurable à l’installation de SPIP, le mode par défaut devrait assurer que l’on puisse se connecter.

    Workaround

    Il y a au moins deux solutions qui fonctionnent :

    1. La création de l’utilisateur à la main dans la base de donnée permet à l’utilisateur de se connecter (insert into spip_auteurs ...)
    2. Mettre define ('_AUTORISER_AUTH_FAIBLE', true);

    Analyse

    Lors de la toute première authentification d’un utilisateur inconnu de SPIP, le mot de passe est envoyé sécurisé par défaut (hachage réalisé par le javascript avec les aleas actuel/futur). Seulement l’authentification LDAP requiert le mot de passe en clair. Lorsque l’utilisateur existe déjà et que la source est ldap, alors la sécurisation du mot de passe est désactivée (login.js, login-sha-min.js, le cadenas à côté du champ mot de passe disparait), d’où le fonctionnement du workaround 1. Si on désactive la sécurisation du mot de passe, workaround 2, alors cela fonctionne lors de la première authentification, et l’utilisateur est bien créé dans SPIP.

    Remarque

    L’envoi en clair n’est pas un gros problème dans notre cas, le site est forcé en HTTPS.

  • Anomalie #3894 (Nouveau) : Jointures (erronées ?) avec les boucles documents et leurs critères

    26 janvier 2017, par marcimat ☺☮☯♫

    Soit le cas suivant :

    - une document A, attaché à une rubrique R1 et R2
    - <doca></doca> mis dans le texte de R1 (il est donc "vu" dans R1, mais pas dans R2)
    - une boucle documents simplifiée (issue de squelettes-dist/inclure/documents.html) dans le squelette test.html :

    Test

  • #FICHIER
  • Constats

    Paramètre id_rubrique :

    Si on appelle ?page=test&#38;id_rubrique=1 le document A sera retourné, malgré le critère {vu=non}.
    Effectivement la boucle effectue 2 jointures différentes sur spip_documents_liens, une pour lier le champ "vu" et l’autre pour lier objet/id_objet.
    Du coup, la requête SQL trouve effectivement un document A non vu (dans la rubrique 2) et le retourne (vu qu’il est lié aussi à la rubrique 1).

    On obtient la requête suivante :

    SELECT documents.fichier
    FROM spip_documents AS `documents`  
    INNER JOIN spip_documents_liens AS L2 ON ( L2.id_document = documents.id_document ) 
    INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document )
    WHERE (documents.statut = ’publie’)
        AND (documents.mode IN (’image’,’document’))
        AND (documents.taille > 0 OR documents.distant=’oui’)
        AND (L2.id_objet = 1)
        AND (L2.objet = ’rubrique’)
        AND (L1.vu = ’non’)
    GROUP BY documents.id_document
    

    Paramètres objet / id_objet :

    Si on appelle page=test&#38;objet=rubrique&#38;id_objet=1, soit logiquement la même chose, on obtient 3 jointures sur spip_documents_liens.
    Là, les documents retournés ne soient pas forcément ceux de l’objet demandé ! La jointure cherche des documents liés à objet=rubrique, id_objet=1, mais pas forcément dans la même liaison !
    Les documents retournés ici sont parfois un peu farfelus donc là.

    SELECT documents.fichier
    FROM spip_documents AS `documents`  
    INNER JOIN spip_documents_liens AS L4 ON ( L4.id_document = documents.id_document ) 
    INNER JOIN spip_documents_liens AS L3 ON ( L3.id_document = documents.id_document ) 
    INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document )
    WHERE (documents.statut = ’publie’)
        AND (documents.mode IN (’image’,’document’))
        AND (documents.taille > 0 OR documents.distant=’oui’)
        AND (L3.objet = ’rubrique’)
        AND (L4.id_objet = 1)
        AND (L1.vu = ’non’)
    GROUP BY documents.id_document
    

    Paramètre id_article

    Si on appelle page=test&#38;id_article=1, on obtient, ô magie, une seule jointure. La boucle est correcte cette fois-ci donc. Je n’ai pas encore cherché pourquoi ça marche avec id_article, et pas id_rubrique…

    SELECT documents.fichier
    FROM spip_documents AS `documents`  
    INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document )
    WHERE (documents.statut = ’publie’)
        AND (documents.mode IN (’image’,’document’))
        AND (documents.taille > 0 OR documents.distant=’oui’)
        AND (L1.id_objet = 1)
        AND (L1.objet = ’article’)
        AND (L1.vu = ’non’)
    GROUP BY documents.id_document