Recherche avancée

Médias (91)

Autres articles (40)

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

Sur d’autres sites (5776)

  • Grab partial .mp4 video from onlline source

    28 juillet 2016, par Flemingjp

    I want to be able to grab a partial mp4 file from an online source so I can produce quick thumbnails.

    My idea was to pull a patial mp4 file from a http request using the header

    Range: 'bytes=1000-'

    However when I parse the data it doesn’t have the mp4 container therefore is corrupt. In Firefox it handles this easily as seeking to an unloaded part of the video is very quick.

    How can I pull partial mp4 clips ? For example from here I could get a clip that is 0:28-0:30

  • ffmpeg audio synch issue - fractional framerate

    29 mars 2013, par JoeCitizen

    We are working on an Android app which uses the ffmpeg library via JNI to edit the frames of a video while keeping size, codec etc the same.

    We are having an issue where the audio of the output video is getting out of sync with the video. We believe this is because some input videos have a frame rate which isn't a whole number e.g 25.66 fps and our output will be at 25fps. We have tried to change the time_base field of the output codec to keep the precision i.e by multiply the numerator and denominator but it makes the output frame rate ridiculously high.

    Does anyone know how to force ffmpeg to use the exact same output frame rate as the one it reads in ? We have not found a way to output videos with a fractional frame rate.

    Example of setting up the output codec :

       c =                 st->codec;
       c->codec_id =       codec_id;
       c->codec_type =     AVMEDIA_TYPE_VIDEO;
       c->bit_rate =       inputCodecCtx->bit_rate;
       c->width =          inputCodecCtx->width;
       c->height =         inputCodecCtx->height;

       c->time_base.num =   1000;
       c->time_base.den =  (int)(fps*1000);//fps of the input video *1000 to keep precision

       c->gop_size =       inputCodecCtx->gop_size;
       c->pix_fmt =        inputCodecCtx->pix_fmt;



       static int write_video_frame(AVFormatContext *oc, AVStream *st, AVFrame *newpict, double fps)
       {
           int             ret = 0;
           AVCodecContext* c = st->codec;

           AVPacket pkt;
           av_init_packet(&pkt);

           if (pkt.pts != AV_NOPTS_VALUE)
           {
               pkt.pts =  av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);

           }
           if (pkt.dts != AV_NOPTS_VALUE)


           {
               pkt.dts = av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
           }

    .....
    }
  • av_read_frame function in ffmpeg in android always returning packet.stream_index as 0

    31 juillet 2013, par droidmad

    I am using the following standard code pasted below (ref : http://dranger.com/ffmpeg/) to use ffmpeg in android using ndk. My code is working fine in ubuntu 10.04 using gcc compiler. But I am facing an issue in android.The issue is av_read_frame(pFormatCtx, &packet) is always returning packet.stream_index=0. I have tested my code with various rtsp urls and I have the same behaviour in all cases. I do not have any linking or compiling issues as everything seems to be working fine except this issue. I am trying to solve this from last 2 days but I am stuck badly.Please point me in right direction.

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

    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavformat></libavformat>avformat.h>
    #include <libswscale></libswscale>swscale.h>

    #include
    #define DEBUG_TAG "mydebug_ndk"

    jint Java_com_example_tut2_MainActivity_myfunc(JNIEnv * env, jobject this,jstring myjurl) {
     AVFormatContext *pFormatCtx = NULL;
     int             i, videoStream;
     AVCodecContext  *pCodecCtx = NULL;
     AVCodec         *pCodec = NULL;
     AVFrame         *pFrame = NULL;
     AVPacket        packet;
     int             frameFinished;

     AVDictionary    *optionsDict = NULL;
     struct SwsContext *sws_ctx = NULL;

     jboolean isCopy;
     const char * mycurl = (*env)->GetStringUTFChars(env, myjurl, &amp;isCopy);
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:p2: [%s]", mycurl);

     // Register all formats and codecs
     av_register_all();
     avformat_network_init();
     // Open video file
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:before_open");

     if(avformat_open_input(&amp;pFormatCtx, mycurl, NULL, NULL)!=0)
         return -1;
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "start: %d\t%d\n",pFormatCtx->raw_packet_buffer_remaining_size,pFormatCtx->max_index_size);

     (*env)->ReleaseStringUTFChars(env, myjurl, mycurl);
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:before_stream");
     // Retrieve stream information
     if(avformat_find_stream_info(pFormatCtx, NULL)&lt;0)
         return -1;
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:after_stream");
     // Find the first video stream
     videoStream=-1;
     for(i=0; inb_streams; i++)
         if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
           videoStream=i;
           break;
         }
     if(videoStream==-1)
         return -1; // Didn&#39;t find a video stream
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:after_videostream");
     // Get a pointer to the codec context for the video stream
     pCodecCtx=pFormatCtx->streams[videoStream]->codec;
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:after_codec_context");

     // Find the decoder for the video stream
     pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:after_decoder");

     if(pCodec==NULL)
         return -1;
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:found_decoder");

     // Open codec
     if(avcodec_open2(pCodecCtx, pCodec, &amp;optionsDict)&lt;0)
         return -1;
     // Allocate video frame
     pFrame=avcodec_alloc_frame();
     sws_ctx = sws_getContext(pCodecCtx->width,pCodecCtx->height,pCodecCtx->pix_fmt,pCodecCtx->width,
           pCodecCtx->height,PIX_FMT_YUV420P,SWS_BILINEAR,NULL,NULL,NULL);
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:before_while");

     int count=0;
     while(av_read_frame(pFormatCtx, &amp;packet)>=0) {
           __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "entered while: %d   %d   %d\n", packet.duration,packet.stream_index,packet.size);

         if(packet.stream_index==videoStream) {
             // Decode video frame
             //break;
             avcodec_decode_video2(pCodecCtx, pFrame, &amp;frameFinished,&amp;packet);
             __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:in_while");
             if(frameFinished) {
                 __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:gng_out_of_while");
                   break;
             }
         }

         // Free the packet that was allocated by av_read_frame
         av_free_packet(&amp;packet);
         if(++count>1000)
            return -2; //infinite while loop
     }
     __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:after_while");

     // Free the YUV frame
     av_free(pFrame);
     // Close the codec
     avcodec_close(pCodecCtx);
     // Close the video file
     avformat_close_input(&amp;pFormatCtx);

     return 0;

    }