Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP 0.2

Autres articles (30)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (5072)

  • Using libavformat to mux H.264 frames into RTP

    22 novembre 2016, par DanielB6

    I have an encoder that produces a series of H.264 I-frames and P-frames. I’m trying to use libavformat to mux and transmit these frames over RTP, but I’m stuck.

    My program sends RTP data, but the RTP timestamp increments by 1 each successive frame, instead of 90000/fps. It also doesn’t look like it’s doing the proper framing for H.264 NAL, since I can’t decode the stream as H.264 in Wireshark.

    I suspect that I’m not setting up the codec information properly, but it appears in many places in the output format context, so it’s unclear what exactly needs to be setup. The examples seem to all copy codec context info from encoders, which isn’t my use case.

    This is what I’m trying :

    int main() {
       AVFormatContext context = avformat_alloc_context();

       if (!context) {
           printf("avformat_alloc_context failed\n");
           return;
       }

       AVOutputFormat *format = av_guess_format("rtp", NULL, NULL);

       if (!format) {
           printf("av_guess_format failed\n");
           return;
       }

       context->oformat = format;

       snprintf(context->filename, sizeof(context->filename), "rtp://%s:%d", "192.168.2.16", 10000);

       if (avio_open(&(context->pb), context->filename, AVIO_FLAG_READ_WRITE) < 0) {
           printf("avio_open failed\n");
           return;
       }

       stream = avformat_new_stream(context, NULL);

       if (!stream) {
           printf("avformat_new_stream failed\n");
           return;
       }

       stream->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
       stream->codecpar->codec_id = AV_CODEC_ID_H264;
       stream->codecpar->width = 1920;
       stream->codecpar->height = 1080;

       avformat_write_header(context, NULL);

       ...
       write packets
       ...
    }

    Example write packet :

    int write_packet(uint8_t *data, int size) {
       AVPacket p;
       av_init_packet(&p);
       p.data = buffer;
       p.size = size;
       p.stream_index = stream->index;

       av_interleaved_write_frame(context, &p);
    }

    I’ve even went so far to build in libx264, find the encoder, and copy the codec context info from there into the stream codecpar, with the same result. My goal is to build without libx264, and any other libs that aren’t required, but it isn’t clear whether libx264 is required for defaults such as time base.

    How can the libavformat RTP muxer be initialized to properly send H.264 frames over RTCP+RTP ?

  • Evolution #4753 : Styles du privé : listes d’objets (suite des boîtes et des formulaires)

    4 mai 2021

    Un point étape.
    Cette fois-ci j’aimerais bien un historique pas trop cassé, donc discussion avant de balancer du code.
    Maintenant les captures ne sont plus des maquettes, mais du vrai code.

    Emballage extérieur

    Donc pour la partie « emballage extérieur », les boîtes, formulaires et listes sont unifiés et réutilisent les mêmes variables CSS.
    Elles ont toutes une variante .mini pour tout ressérer. Cette variante est automatiquement appliquée en certains endroits (dans les colonnes, etc.).

    Intérieur

    Pour l’intérieur, j’ai donc appliqué ces quelques règles :

    • Padding un peu plus grand
    • Plus de largeur fixe, à l’exception de quelques colonnes précises (id, statut, picto)
    • Même taille de texte dans toutes les colonnes, à l’exception des <small></small> éventuels

    Dans les colonnes latérales (.lat), toutes les colonnes du tableau sont masquées à l’exception des .principale et de quelques autres choisies à la main (id, statut).

    J’ai testé avec toutes les listes de la dist, il faudra bien continuer à tester avec d’autres cas de figure.

    Listes, formulaires et +

    Le sujet des listes objets-lies et objets-associer m’a amené à déborder un peu du sujet initial. Mais tout est un peu lié, un sujet en amène un autre.

    Donc ces 2 listes sont utilisées dans le formulaire editer_liens, j’en ai profité pour essayer de le remettre d’aplomb.
    Là j’ai vu qu’avec l’apparence par défaut (bordure grise + fond blanc), quand plusieurs formulaires de liens se suivaient, on avait du mal à voir où finissait l’un et où commençait l’autre (pas de capture, croyez moi sur parole :).
    En mettant un fond gris, on les distingue beaucoup mieux.
    Et j’ai bien insisté quand ils sont "dépliés", pour distinguer les 2 zones.

    Mais ça a également un autre avantage : en scannant la fiche objet dans son ensemble, on voit mieux où commence le « vrai » contenu de l’objet, par rapport aux bidules de configuration (date, liens, etc.).
    D’abord les formulaires et autres sur fond gris, puis ensuite le texte de l’objet.

    Donc je pense qu’on pourrait généraliser ça : au lieu de dire « les formulaires editer_liens sont sur fond gris », on pourrait étendre à « tous les formulaires ajoutés par afficher_milieu sont sur fond gris ». Ça reste une règle graphique assez légère, normalement ça ne devrait pas poser de problème avec les formulaires à cet endroit.
    Le problème c’est qu’actuellement il n’y a aucun moyen de cibler en CSS ce qui est ajouté par affiche_milieu, il faut encapsuler tout ça dans un div.afficher_milieu (ce que j’ai fait pour tester le principe).

    Et donc, la fiche objet dans son ensemble pour illustrer :

    Ah, et un test pour le formulaire de traductions :

  • Evolution #4102 : Ordre des inclures dans cache/charger_plugins_options.php

    26 février 2018, par RastaPopoulos ♥

    TL ;DR : problème résolu, c’est le plugin Albums qui ne fait pas bien les choses + mais un pipeline à l’initialisation est forcément utile et j’en ai déjà eu besoin.

    @azerttyu Mais non, on ne doit surtout pas changer l’ordre des fichiers, il y a des milliers (et peut-être même des milliards :p) de cas dans la nature qui se basent tous sur le fait que l’ordre logique est le même que partout ailleurs, celui de l’ordre des pipelines et celui de l’ordre de toutes les surcharges de fichiers dans SPIP, càd l’ordre du PATH. D’une ce serait incohérent mais surtout c’est pas un nouveau truc ajouté, là on parle des options.php déjà utilisé partout, donc non on ne doit rien changer à l’ordre actuel.

    Si ya un truc qui doit changer c’est sur un ajout, pas sur un truc méga utilisé partout.

    Dans tous les cas, comme dit marcimat, faire de la config avec des define() c’est vraiment pas super, et encore plus définir des define() dans le options.php du plugin qui en a besoin ! Après le problème c’est quand le define() est justement utilisé directement dans ce options.php… Mais s’il ne l’est pas, le define() doit être défini dans le inc/truc, action/truc, etc, ce qui permet bien à d’autres de le définir en amont dans leur options.php.

    D’ailleurs placido a donné des exemples précis, en parlant du plugin Album. Est-ce que celui-ci utilise ces deux define() dans le code de son options.php ? Si ce n’est pas le cas c’est lui qui doit être modifié pour définir ces variables ailleurs.
    La réponse est là :
    https://zone.spip.org/trac/spip-zone/browser/_plugins_/albums/trunk/albums_options.php

    Comme vous le voyez, AUCUNE de ces variables n’est utilisée à cette endroit là. Donc c’est le plugin Albums qui ne fait pas bien les choses. Il faut absolument déplacer l’ensemble de ces variables dans les fichiers où elles sont vraiment utilisés.

    Et du coup c’est fini, problème résolu, c’est le plugin source qui était en problème, et une fois corrigé placido n’a plus de problème à définir ces valeurs avant.

    Les cas où des define() sont définis ET utilisés directement dans le options.php sont méga méga rares, et je crois même qu’il n’y a que Bonux qui fait ça, pour la prévisu temporaire :
    https://zone.spip.org/trac/spip-zone/browser/_plugins_/spip-bonux-3/spip_bonux_options.php#L25
    (et ça m’avait bien saoulé pour le surcharger, j’avais fini par le définir dans les mes_options.php du projet alors que je ne l’utilise jamais et que je voulais le faire dans le plugin de mon projet)

    (Par ailleurs, dans tous les cas ce serait bien qu’il y ait un pipeline/trigger au tout début de SPIP, j’avais déjà eu le besoin pour faire des choses avant la connexion/cookie etc, pour connecter les gens par Facebook ou autre truc extérieur au tout démarrage, et pour le moment j’avais dû le faire dans mon action PHP à moi, au lieu de pouvoir le faire dans un truc générique qui aurait valu pour n’importe quel hit PHP, et du coup j’ai jamais pu en faire un plugin générique. Mais faudrait peut-être faire un ticket dédié pour demander cet ajout.)