Recherche avancée

Médias (0)

Mot : - Tags -/content

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (15)

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

Sur d’autres sites (3991)

  • Anomalie #3329 : Publication des documents en 2018

    25 mai 2017, par guytarr °

    Merci Francky
    http://zone.spip.org/trac/spip-zone/changeset/104642
    http://zone.spip.org/trac/spip-zone/changeset/104643

    Pour le report 3.0, il n’y a pas besoin de sql_update(’spip_documents’, array(’statut’ => ’0’), ’date_publication = ’ . sql_quote(’1970-01-01 01:33:58’)) ; si tu fais tout en une fois

  • Playing Mp3 file using FFmpeg on Android

    2 avril 2017, par satyres

    This question has been asked a lot but no code has worked for me . i’ve been able to play a file decoded with ffmpeg on Android but it’s noisy and glitchy.
    i’ve found code in book called "linux sound programming" using latest ffmpeg version to decode an mp3 file.
    the code tries to decode an mp3 file to pcm and then put it in a file called output.
    what i want to do is to get the byte decoded on the fly and send them to AudioTrack in Java.

    void JNICALL Java_com_example_home_hellondk_MainActivity_loadFile
           (JNIEnv* env, jobject obj,jstring file,jbyteArray array)
    {

    jboolean isfilenameCopy;
            const char * filename = (*env)->GetStringUTFChars(env, file,
                    &isfilenameCopy);
    jclass cls = (*env)->GetObjectClass(env, obj);
            jmethodID play = (*env)->GetMethodID(env, cls, "playSound", "([BI)V");
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int len;
       FILE *f, *outfile;
       uint8_t inbuf[AUDIO_INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
       AVPacket avpkt;
       AVFrame *decoded_frame = NULL;
    AVFormatContext* container=NULL;
       av_init_packet(&avpkt);
    int num_streams = 0;
       int sample_size = 0;
       printf("Decode audio file %s \n", filename);
    LOGE("Decode audio file %s\n", filename);
       /* find the MPEG audio decoder */
     /*  codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
       if (!codec) {
           fprintf(stderr, "Codec not found\n");
           LOGE("Codec not found\n");
           exit(1);
       }*/
    int lError;
            if ((lError = avformat_open_input(&container, filename, NULL, NULL))
                    != 0) {
                LOGE("Error open source file: %d", lError);
                exit(1);
            }
            if ((lError =  avformat_find_stream_info(container,NULL)) < 0) {
                LOGE("Error find stream information: %d", lError);
                exit(1);
            }
            LOGE("Stage 1.5");
           LOGE("audio format: %s", container->iformat->name);
          LOGE("audio bitrate: %llu", container->bit_rate);

       int stream_id = -1;
           // To find the first audio stream. This process may not be necessary
           // if you can gurarantee that the container contains only the desired
           // audio stream
              LOGE("nb_streams: %d", container->nb_streams);
           int i;
           for (i = 0; i < container->nb_streams; i++) {
               if (container->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
                   stream_id = i;
                    LOGE("stream_id: %d", stream_id);
                   break;
               }
           }

           AVCodecContext* codec_context = container->streams[stream_id]->codec;
           codec = avcodec_find_decoder(codec_context->codec_id);
            LOGE("stream_id: %d", stream_id);
           LOGE("codec %s", codec->name);
           if (!codec) {
               fprintf(stderr, "codec not found\n");
               exit(1);
           }

       c = avcodec_alloc_context3(codec);
       if (!c) {
           fprintf(stderr, "Could not allocate audio codec context\n");
             LOGE("Could not allocate audio codec context\n");
           exit(1);
       }

       /* open it */
       if (avcodec_open2(c, codec, NULL) < 0) {
           fprintf(stderr, "Could not open codec\n");
            LOGE("Could not open codec\n");
           exit(1);
       }

       f = fopen(filename, "rb");
       if (!f) {
           fprintf(stderr, "Could not open %s\n", filename);
           LOGE("Could not open %s\n",filename);
           exit(1);
       }
       const char *outfilename;
    outfile = fopen(outfilename, "wb");
       if (!outfile) {
           av_free(c);
           exit(1);
       }


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

        while (avpkt.size > 0) {
              int got_frame = 0;
              if (!decoded_frame) {
                  if (!(decoded_frame = av_frame_alloc())) {
                      fprintf(stderr, "out of memory\n");
                      exit(1);
                  }
                  } else {
                              av_frame_unref(decoded_frame);
                          }
                          printf("Stream idx %d\n", avpkt.stream_index);
                          len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
                          if (len < 0) {
                              fprintf(stderr, "Error while decoding\n");
                              exit(1);
                          }
                          if (got_frame) {
                              printf("Decoded frame nb_samples %d, format %d\n",
                                     decoded_frame->nb_samples,
                                     decoded_frame->format);
                              if (decoded_frame->data[1] != NULL)
                                  printf("Data[1] not null\n");
                              else
                                  printf("Data[1] is null\n");
                              /* if a frame has been decoded, output it */
                              int data_size = av_samples_get_buffer_size(NULL, c->channels,
                                                                         decoded_frame->nb_samples,
                                                                         c->sample_fmt, 1);
                              // first time: count the number of  planar streams
                              if (num_streams == 0) {
                                  while (num_streams < AV_NUM_DATA_POINTERS &&
                                         decoded_frame->data[num_streams] != NULL)
                                      num_streams++;
                                  printf("Number of streams %d\n", num_streams);
                              }
                              // first time: set sample_size from 0 to e.g 2 for 16-bit data
                              if (sample_size == 0) {
                                  sample_size =
                                      data_size / (num_streams * decoded_frame->nb_samples);
                              }
                              int m, n;

                              for (n = 0; n < decoded_frame->nb_samples; n++) {
                                  // interleave the samples from the planar streams
                                  for (m = 0; m < num_streams; m++) {
                                     fwrite(&decoded_frame->data[m][n*sample_size],
                                             1, sample_size, outfile);

                                  }
                              }

                   /*            jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
                               memcpy(bytes, decoded_frame->data[1], data_size);
                               (*env)->ReleaseByteArrayElements(env, array, bytes, 0);
                              (*env)->CallVoidMethod(env, obj, play, array, data_size);

    */
                          }
                          avpkt.size -= len;
                          avpkt.data += len;
                          if (avpkt.size < 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;
                                       }
                                   }

       fclose(f);

       avcodec_free_context(&c);
    av_frame_free(&decoded_frame);

    }

    the decoded bytes are in this section
    fwrite(&decoded_frame->data[m][n*sample_size],                                           1, sample_size, outfile);

    the code that let you send bytes to java is this :

     jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
     memcpy(bytes, decoded_frame->data[0], data_size);
    (*env)->ReleaseByteArrayElements(env, array, bytes, 0);
    (*env)->CallVoidMethod(env, obj, play, array, data_size);

    i’ve been working on it now for more than a week and nothing worked for me.

    Thank you in advance for your help

  • Overlay video with moving images FFMPEG

    15 mars 2017, par goodgrief

    I have a video and few images. I know two places in the video where I want to paste these images. But they shouldn’t have fixed position and size. On the contrary, images should move, change their tilt angle and scale. For example you may imagine closed book and you want to overlay its name when the book is slowly opens.
    I read FFMPEG documentation but didn’t found anything about this. Can FFMPEG do this ? If not, which libraries or methodics can do that ?