Recherche avancée

Médias (5)

Mot : - Tags -/open film making

Autres articles (106)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

  • Qu’est ce qu’un masque de formulaire

    13 juin 2013, par

    Un masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
    Chaque formulaire de publication d’objet peut donc être personnalisé.
    Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
    Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...)

Sur d’autres sites (10457)

  • Android : How to play MP3 files with ID3 tags using FFMPEG

    16 juillet 2012, par Vipul Purohit

    I am trying to play various sound files using FFMPEG lib in android. I have managed to play most files but some file Example : MP3 files with ID3 tag are not playing. I tried playing files by taking reference of various example but didn't get any success.

    Here is my native side code :

    #include
    #include
    #include
    #include <android></android>log.h>

    #include "libavcodec/avcodec.h"
    #include "libavformat/avformat.h"

    #define LOG_TAG "mylib"
    #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
    #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)

    #define AUDIO_INBUF_SIZE 20480
    #define AUDIO_REFILL_THRESH 4096

    void Java_ru_dzakhov_ffmpeg_test_MainActivity_createEngine(JNIEnv* env, jclass clazz)
       {
           avcodec_init();

           av_register_all();


       }

       jstring Java_ru_dzakhov_ffmpeg_test_MainActivity_loadFile(JNIEnv* env, jobject obj,jstring file,jbyteArray array)
       {
           {
                   jboolean            isfilenameCopy;
                   const char *        filename = (*env)->GetStringUTFChars(env, file, &amp;isfilenameCopy);
                   int audioStreamIndex;
                   AVCodec *codec;
                   AVCodecContext *c= NULL;
                   AVFormatContext * pFormatCtx;
                   AVCodecContext * aCodecCtx;
                   int out_size, len, audioStream=-1, i, err;
                   FILE *f, *outfile;
                   uint8_t *outbuf;
                   uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
                   AVPacket avpkt;
                   jclass              cls = (*env)->GetObjectClass(env, obj);
                   jmethodID           play = (*env)->GetMethodID(env, cls, "playSound", "([BI)V");//At the begining of your main function

                   LOGE("source file name is %s", filename);

                      avcodec_init();

                      av_register_all();

                      LOGE("Stage 1");
                      /* get format somthing of source file to AVFormatContext */
                      int lError;
                      if ((lError = av_open_input_file(&amp;pFormatCtx, filename, NULL, 0, NULL)) !=0 ) {
                          LOGE("Error open source file: %d", lError);
                          exit(1);
                      }
                      if ((lError = av_find_stream_info(pFormatCtx)) &lt; 0) {
                          LOGE("Error find stream information: %d", lError);
                          exit(1);
                      }
                      LOGE("Stage 1.5");
                      LOGE("audio format: %s", pFormatCtx->iformat->name);
                      LOGE("audio bitrate: %d", pFormatCtx->bit_rate);



                      audioStreamIndex = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_AUDIO, -1, -1, &amp;codec, 0);

    //                 audioStreamIndex=-1;
    //                 LOGE("nb_stream %d", pFormatCtx->nb_streams);
    //                     for(i=0; inb_streams; i++)
    //                     {
    //                         LOGE("nb_stream %d", pFormatCtx->nb_streams);
    //                         if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO)
    //                         {
    //                             audioStream=i;
    //                             break;
    //                         }
    //                     }
    //
    //                     if(audioStream==-1)
    //                     {
    //                         LOGE("Cannot find audio");
    //                     }

                         LOGE("audioStreamIndex %d", audioStreamIndex);
    //                    if (audioStreamIndex == AVERROR_STREAM_NOT_FOUND) {
    //                        LOGE(1, "cannot find a audio stream");
    //                        exit(1);
    //                    } else if (audioStreamIndex == AVERROR_DECODER_NOT_FOUND) {
    //                        LOGE(1, "audio stream found, but no decoder is found!");
    //                        exit(1);
    //                    }
                         LOGE("audio codec: %s", codec->name);

                         /* get codec somthing of audio stream to AVCodecContext */
                         aCodecCtx = pFormatCtx->streams[audioStreamIndex]->codec;
                         if (avcodec_open(aCodecCtx, codec) &lt; 0) {
                         LOGE("cannot open the audio codec!");
                             exit(1);
                         }

                   printf("Audio decoding\n");
                   LOGE("Stage 1.7");
                   LOGE("S");
                   codec = avcodec_find_decoder(aCodecCtx->codec_id);
                   LOGE("Stage 1.8");
                   if (!codec) {
                       LOGE("codec not found\n");
                       exit(1);
                   }
                   LOGE("Stage 2");
    //              c= avcodec_alloc_context();
                   LOGE("Stage 3");
                   /* open it */
                   if (avcodec_open(aCodecCtx, codec) &lt; 0) {
                       LOGE("could upper");
                       fprintf(stderr, "could not open codec\n");
                       LOGE("could not open codec");

                   }
                   LOGE("Stage 4");
                   outbuf = malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE);

                   f = fopen(filename, "rb");
                   if (!f) {
                       fprintf(stderr, "could not open %s\n", filename);
                       LOGE("could not open");
                       exit(1);
                   }

                   /* decode until eof */
                   avpkt.data = inbuf;
                   avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
                   LOGE("Stage 5");


                   while (avpkt.size > 0) {
    //                  LOGE("Stage 6");
                       out_size = (AVCODEC_MAX_AUDIO_FRAME_SIZE/3)*2;
                       len = avcodec_decode_audio3(aCodecCtx, (int16_t *)outbuf, &amp;out_size, &amp;avpkt);
                       LOGE("data_size %d len %d", out_size, len);
                       if (len &lt; 0) {
                           fprintf(stderr, "Error while decoding\n");
                           LOGE("DECODING ERROR");
                           LOGE("DECODING ERROR %d", len);
                           exit(1);
                       }
    //                  LOGE("Stage 7");
                       if (out_size > 0) {
                           /* if a frame has been decoded, output it */
    //                      LOGE("Stage 8");
                           jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
                           memcpy(bytes, outbuf, out_size); //
                           (*env)->ReleaseByteArrayElements(env, array, bytes, 0);
                           (*env)->CallVoidMethod(env, obj, play, array, out_size);
    //                      LOGE("DECODING ERROR5");
                       }
                       LOGE("Stage 9");
                       avpkt.size -= len;
                       avpkt.data += len;
                       if (avpkt.size &lt; AUDIO_REFILL_THRESH) {
                           /* Refill the input buffer, to avoid trying to decode
                            * incomplete frames. Instead of this, one could also use
                            * a parser, or use a proper container format through
                            * libavformat. */
                           memmove(inbuf, avpkt.data, avpkt.size);
                           avpkt.data = inbuf;
                           len = fread(avpkt.data + avpkt.size, 1,
                                       AUDIO_INBUF_SIZE - avpkt.size, f);
                           if (len > 0)
                               avpkt.size += len;
                       }
                   }
                   LOGE("Stage 12");
                   fclose(f);
                   free(outbuf);

                   avcodec_close(c);
                   av_free(c);

           }
       }

    Sorry for a rough code but I am testing on this code.

    I found the reason that the mp3 file has ID3 info, but I don't handle this, all the ID3 info data is decode as frame data, so the right frame header sign 0xFFE00000 can't be found and the method "avcodec_decode_audio3" return -1.

    I found this in question mp3 decoding using ffmpeg API (Header missing)

    If anyone can help me handle and play file with ID3 tags in MP3 and similar for other formats.

  • Should I compile with -mssse3 in the presence of ASM SSSE3 code ?

    19 juillet 2012, par Philos

    I have a question regarding compiling a build of x264 on GCC.

    x264 has assembly code dealing with instruction sets such as SSE3 and SSSE3 and by default has auto-vectorization disabled in the makefile.

    Should I compile it with the -mssse3 flag anyways or could that actually cause a loss in performance ?

    And does -mssse3 imply -msse3 or is SSE3 separate from SSSE3 ?

  • Interview de l'auteur du Livre sur Piwik : Ronan Chardonneau

    20 juillet 2012, par Piwik team — Community

    Ronan Chardonneau, auteur de Piwik : L'alternative Open Source en web analytique aux éditions ENI, répond aux questions de Matthieu Aubry le créateur de Piwik !


    Qu'est ce qui t'a poussé à écrire ce livre ?

    En fait il y a eu plusieurs choses. Tout d'abord je travaille au sein d'une structure un peu spéciale, notre agence web, inextcom travaille physiquement sur un plateau regroupant la plupart des acteurs de la ville de Nantes qui utilisent des logiciels libres. Toutes ses entreprises sont adhérentes d'une association qui s'appelle Alliance Libre. Quand je suis arrivé au sein de cette structure j'étais le seul à venir du monde du webmarketing. Le webmarketing tourne beaucoup autour de Google du coup je n'étais pas forcément vu d'un très bon oeil. Du coup j'ai voulu m'ouvrir sur ce qui se passait en dehors de Google Analytics est c'est ainsi que j'ai découvert Piwik. J'ai pas mal accroché sur cette technologie car elle est très intuitive.

    Je me suis penché sur cette solution et ai décidé de la proposer en tant que formation. Quelques mois après son apparition dans notre catalogue de formation nous avons été contacté par un grand compte français pour donner un formation. J'avais vraiment à cœur de fournir une formation de qualité, en un week end mon support de cours avait dépassé les 50 pages. Je suis arrivé le lundi matin au travail et j'ai dit, les gars on va écrire un livre sur Piwik. J'ai regardé ce qui s'était déjà fait à droite à gauche et il n'y avait qu'un seul livre au monde semble t il écrit sur le sujet. Je me suis dit qu'il pouvait être intéressant de démocratiser l'outil… et au revoir jolis petits week end et bonjour les nuits blanches :)

    Je voulais également être l'un des premiers auteurs sur cette solution car trop souvent ces ouvrages sont écrits par des anciens ingénieurs ou développeurs qui ont ensuite basculé dans le monde du marketing. Dans mon cas c'est le contraire je viens du marketing et ai basculé dans l'informatique, du coup ma vision du logiciel est purement orienté sur la façon dont je vais pouvoir extraire les informations pour mon analyse et non pas l'ensemble des fonctionnalités qui ont été développées pour le logiciel.

    Combien de temps ce projet de livre Piwik a t'il pris ?

    En fait j'adore écrire, et j'ai eu l'écriture plutôt facile pour ce livre. Le temps me manquait du coup j'ai décidé de l'écrire avec l'un de mes collègues : Germain Butrot. Le plus pénible dans l'écriture est que nous ne sommes pas développeurs du coup on a perdu pas mal de temps sur des soucis d'installation. Je dirai que rédiger ce livre nous a pris deux mois de travail.

    Combien de clients as tu introduits à Piwik ?

    Pas énormément, en fait les clients ont déjà fait leur choix de cette solution avant de s'engager chez nous, simplement qu'ils ne savent pas l'installer, le configurer, gérer la base de données etc. En fait il y a les clients qui n'ont pas encore réalisé oh combien la confidentialité de leurs données est critique et qu'il est dangereux de les confier à des tiers, ce qui représente 97% des sites Internet. Les 3% restants sont des entreprises qui en effet souhaitent se rapprocher au maximum du risque 0 en ce qui concerne la confidentialité des données. Nous introduisons la plupart de nos clients à Piwik, cependant ces derniers ont au final le choix entre une solution gratuite que tout le monde utilise et un hébergement de données payant pour atteindre un niveau de sécurité qu'ils ne considèrent pas comme critique.

    Ronan séance de dédicaces

    Le web analytique étant une discipline peu enseignée en France, le plus gros du travail est de faire réaliser aux webmasters que la notion de confidentialité est extrêmement importante. Je pense sincèrement que de plus en plus d'utilisateurs migreront sur des solutions telles que Piwik, tout simplement parce que le web analytique est une discipline en développement et que l'on commence à récupérer des données de plus en plus précieuses, il va donc falloir commencer à les protéger au maximum.

    Si tu avais le droit à un vœu, quelle serait la nouvelle fonctionnalité qui te plairait le plus dans Piwik ?

    Bonne question, en fait je pense qu'il y en a deux, personnellement je souhaiterais que l'on puisse créer les rapports de son choix en sélectionnant uniquement les données désirées. Cependant je pense que la fonctionnalité qui ferait beaucoup de bien pour la démocratisation de Piwik serait de pouvoir uniquement insérer le tagging dans les pages pour que Piwik commence à récolter les données. C'est principalement ce que je décris dans le livre, l'installation de Piwik est encore assez technique pour des personnes qui n'y connaissent rien. Les gens n'ayant pas encore saisi l'importance du web analytique sont à la recherche d'un outil qui en peu d'efforts peu être installé.

    Tu as beaucoup d’expérience en web marketing. Que nous conseilles tu pour le futur en terme de Marketing pour Piwik ?

    Je pense que Piwik a un potentiel énorme tout comme la plupart des projets open source populaires. Le problème c'est que ces projets ne savent pas encore communiquer auprès des personnes spécialisées dans le marketing. Le concept de l'open source n'est pas du coup connu du monde du marketing. Ce qui fait que lorsqu'un projet open source débarque sur le marché on a l'impression que seuls des personnes avec des connaissances en développement peuvent contribuer à ce projet alors qu'il existe énormément de missions que des personnes du marketing peuvent occuper au sein d'un tel projet : traduction, réalisation de bannières publicitaires, réalisation de pages de contenu pour en faire la promotion, remontée de fonctions importantes à intégrer etc

    De tous les projets Open Source que je connais je trouve que le CMS WordPress s'en sort le mieux, l'outil est très facile à prendre en main, assez intuitif, du coup nombreux sont les personnes du marketing a s'être familiarisé avec l'outil et à en faire des retours pour des développements de modules, de templates etc au final la communauté WordPress est énorme et le nombre de plugin impressionnant.

    Pour Piwik je pense qu'il pourrait être intéressant d'interroger des utilisateurs influents dans le monde du web analytique, de les inviter à utiliser Piwik et de nous faire un retour sur les fonctionnalités éventuelles à installer.


    Le livre sera t-il traduit ?

    Le livre devrait être traduit en espagnol et disponible sur ce marché d'ici 6 mois. Concernant les autres langues je suis actuellement à la recherche de traducteurs dans toutes les autres langues. Je suis prêt à céder mes droits de traduction à un prix modique, ce qui m'intéresse avant tout c'est la démocratisation de l'outil. Aussi n'hésitez pas à me faire si vous êtes volontaire ou avez des personnes volontaires dans votre entourage.

    Y aura t-il une version 2 du livre ?

    Très certainement une version avancée du livre verra le jour dans les prochaines années, tout dépend principalement des retours qui me seront fait par rapport à cet ouvrage, les demandes de personnalisation de code dont on m'aura fait la demande, le développement de Piwik…

    Merci Ronan pour ton travail de démocratisation sur Piwik, ton livre va vraiment permettre au projet de trouver une nouvelle cible en France… et on espère voir une Version 2 du livre dans quelques mois ! Je te souhate de bonnes ventes pour le livre et bonne contination pour tous tes projets.

    Le livre est en vente sur la FNAC, Amazon.fr, le site de l'éditeur.

    A voir aussi : Grand Jeu Concours 10 Livres Piwik à gagner !