Recherche avancée

Médias (3)

Mot : - Tags -/plugin

Autres articles (66)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Liste des distributions compatibles

    26 avril 2011, par

    Le tableau ci-dessous correspond à la liste des distributions Linux compatible avec le script d’installation automatique de MediaSPIP. Nom de la distributionNom de la versionNuméro de version Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    Si vous souhaitez nous aider à améliorer cette liste, vous pouvez nous fournir un accès à une machine dont la distribution n’est pas citée ci-dessus ou nous envoyer le (...)

  • 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 (...)

Sur d’autres sites (7726)

  • 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.

  • opencv + opengl + ffmpeg ?

    4 août 2012, par JeiKei

    I'm trying to write a application that uses ffmpeg to play a video, opencv to analysis camera input data and opengl to show UI.

    The reason I want to use openGL is because opencv does not support transparent images for UI, also opencv does not support playing sound of a video.

    is there any tutorial for this ?

  • How to get real time video stream from iphone camera and send it to server ?

    7 novembre 2016, par Ron

    I am using AVCaptureSession to capture video and get real time frame from iPhone camera but how can I send it to server with multiplexing of frame and sound and how to use ffmpeg to complete this task, if any one have any tutorial about ffmpeg or any example please share here.