Recherche avancée

Médias (0)

Mot : - Tags -/upload

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

Autres articles (108)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (16774)

  • How to save image from the middle of a video ?

    29 octobre 2017, par puppon -su

    I need to make a thumbnail for a video, to seek to the 25% of a video and save the image. Here is what I’m doing right now, but it only saves black image.

    #include

    #include <libavformat></libavformat>avformat.h>
    #include <libavutil></libavutil>dict.h>

    int main (int argc, char **argv)
    {

       av_register_all();

       AVFormatContext *pFormatCtx = avformat_alloc_context();

       int res;

       res = avformat_open_input(&amp;pFormatCtx, "test.mp4", NULL, NULL);
       if (res) {
           return res;
       }


       avformat_find_stream_info(pFormatCtx, NULL);

       int64_t duration = pFormatCtx->duration;


       // Find the first video stream
       int videoStream=-1;
       for(int i=0; inb_streams; i++) {
           if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
               videoStream=i;
               break;
           }
       }
       if(videoStream==-1) {
           return -1;
       }

       AVCodecContext *pCodecCtxOrig = NULL;

       // Get a pointer to the codec context for the video stream
       pCodecCtxOrig=pFormatCtx->streams[videoStream]->codec;


       AVCodec *pCodec = NULL;
       // Find the decoder for the video stream
       pCodec=avcodec_find_decoder(pCodecCtxOrig->codec_id);
       if(pCodec==NULL) {
           fprintf(stderr, "Unsupported codec!\n");
           return -1; // Codec not found
       }


       AVCodecContext *pCodecCtx = NULL;
       // Copy context
       pCodecCtx = avcodec_alloc_context3(pCodec);
       if(avcodec_copy_context(pCodecCtx, pCodecCtxOrig) != 0) {
           fprintf(stderr, "Couldn't copy codec context");
           return -1; // Error copying codec context
       }


       // Open codec
       if(avcodec_open2(pCodecCtx, pCodec, NULL)&lt;0) {
           return -1; // Could not open codec
       }


       AVFrame *pFrame = NULL;

       pFrame=av_frame_alloc();

       AVFrame *pFrameRGB = NULL;

       pFrameRGB=av_frame_alloc();



       // Determine required buffer size and allocate buffer
       int numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width,
                                   pCodecCtx->height);

       uint8_t *buffer = NULL;
       buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));


       // Assign appropriate parts of buffer to image planes in pFrameRGB
       // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
       // of AVPicture
       res = avpicture_fill((AVPicture *)pFrameRGB, buffer, AV_PIX_FMT_RGB24,
                       pCodecCtx->width, pCodecCtx->height);
       if (res&lt;0) {
           return;
       }



       // I've set this number randomly
       res = av_seek_frame(pFormatCtx, videoStream, 20.0, AVSEEK_FLAG_FRAME);
       if (res&lt;0) {
           return;
       }



       AVPacket packet;
       while(1) {
           av_read_frame(pFormatCtx, &amp;packet);
           if(packet.stream_index==videoStream) {
               int frameFinished;
               avcodec_decode_video2(pCodecCtx, pFrame, &amp;frameFinished, &amp;packet);
               if(frameFinished) {
                   SaveFrame(pFrameRGB, pCodecCtx->width,
                       pCodecCtx->height);
                   break;
               }

           }
       }


       avformat_close_input(&amp;pFormatCtx);
       return 0;
    }



    void SaveFrame(AVFrame *pFrame, int width, int height) {
     FILE *pFile;
     char szFilename[] = "frame.ppm";
     int  y;

     // Open file
     pFile=fopen(szFilename, "wb");
     if(pFile==NULL)
       return;

     // Write header
     fprintf(pFile, "P6\n%d %d\n255\n", width, height);

     // Write pixel data
     for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);

     // Close file
     fclose(pFile);
    }

    I was following this tutorial http://dranger.com/ffmpeg/tutorial01.html http://dranger.com/ffmpeg/tutorial07.html . It says that it was updated in 2015, but there already are some warnings about deprecated code, for example here : pFormatCtx->streams[i]->codec.

    I got video duration (in microseconds), but I don’t understand what I should send to av_seek_frame. Can I somehow use frame number for both duration and seeking, instead of time ?

  • How to paint on a video frame by frame and save it using flutter ?

    20 septembre 2022, par Maxence Bourdin

    The goal is to analyse a video frame by frame and apply a painting on each of those frames. Then save the video and be able to play it.

    &#xA;

    Do you know if such a thing is possible in flutter ? I've heard about ffmpeg package but I'm not too sure if that's possible with it.

    &#xA;

  • Revision d205335060 : [svc] Finalize spatial svc first pass rate control 1. Save stats for each

    19 mars 2014, par Minghai Shang

    Changed Paths :
     Modify /examples/vp9_spatial_scalable_encoder.c


     Modify /test/svc_test.cc


     Modify /vp9/encoder/vp9_firstpass.c


     Modify /vp9/encoder/vp9_firstpass.h


     Modify /vp9/encoder/vp9_onyx_if.c


     Modify /vp9/encoder/vp9_onyx_int.h


     Modify /vp9/encoder/vp9_svc_layercontext.h


     Modify /vpx/src/svc_encodeframe.c


     Modify /vpx/vpx_encoder.h



    [svc] Finalize spatial svc first pass rate control

    1. Save stats for each spatial layer
    2. Add frame buffer management for svc first pass rc
    3. Set default spatial layer to 1
    4. Flush encoder at the end of stream in test app
    This only supports spatial svc.
    Change-Id : Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae