Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (89)

  • Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur

    8 février 2011, par

    La visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
    Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
    Configuration de la boite multimédia
    Dès (...)

  • 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

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (9098)

  • Best / simplest way to display FFmpeg frames in Qt5 [Solved]

    15 juin 2015, par user412

    I need to display ffmpeg frames on Qt widget. I know about QtFFmpegWrapper, but it seems outdated. I tried to use memcpy() to copy data from RGB ffmpeg frame to QImage and got unhandled exception inside it.

    QImage lastFrame;
    lastFrame = QImage( screen_w, screen_h, QImage::Format_RGB888 );
    for( int y = 0; y < screen_h; ++y )
       memcpy( lastFrame.scanLine(y),
               frameRGB -> data[0] + y * frameRGB -> linesize[0],
               screen_w * 3 );

    I tried sws_getContext() and sws_getCachedContext(), AV_PIX_FMT_BGR24 and AV_PIX_FMT_RGB24 in all parts of ffmpeg processing. All ffmpeg code is from popular tutorials and works fine with SDL and PIX_FMT_YUV420P.

    Any ideas ?
    Maybe it’s not the best/simplest way to display ffmpeg frames on Qt widget ?

    Edit.

    Ok, I used Murat Şeker’s solution with QImage::copy() but now QImage::isNull() returns true.

    Some of my ffmpeg code :

    out_buffer = (uint8_t*)av_malloc( avpicture_get_size( AV_PIX_FMT_RGB32,
                                     codecCtx -> width, codecCtx -> height ));
    avpicture_fill((AVPicture *)frameRGB, out_buffer, AV_PIX_FMT_RGB32,
                  codecCtx -> width, codecCtx -> height);
    img_convert_ctx = sws_getContext( codecCtx -> width, codecCtx -> height,
                                     codecCtx -> pix_fmt, codecCtx -> width,
                                     codecCtx -> height, AV_PIX_FMT_RGB32,
                                     SWS_BICUBIC, NULL, NULL, NULL );
    /* ... */

    if( got_picture ){
       sws_scale( img_convert_ctx, (const uint8_t* const*)frame -> data,
                  frame -> linesize, 0, codecCtx -> height, frameRGB -> data,
                  frameRGB -> linesize );
       QImage imgFrame = QImage( frameRGB -> data[0], frameRGB -> width,
                                 frameRGB -> height, frameRGB -> linesize[0],
                                 QImage::Format_RGB32 ).copy();
       if( imgFrame.isNull()){} // true

       // But I can write this frame to hard disk using BITMAPFILEHEADER
       SaveBMP( frameRGB, codecCtx -> width, codecCtx -> height ); // it works
    }
  • ffmpeg - correctly handling misaligned audio/video input stream before outputting to rtmp

    4 décembre 2020, par hedgehog90

    I use a video player called MPV to transcode a dynamic playlist of media files.

    


    I pipe MPV's encoded output into FFMPEG and format it for rtmp delivery.

    


    However the playlist may contain media with misaligned audio and video, ie - the audio track may be shorter / longer than the video track.

    


    No matter what MPV will only output what it's given. So if my media file has audio that is 1 second long and video that is 2 seconds long, it will output a media stream with exactly the same misalignment, rather than generating null audio or skipping to the next item in the playlist when it first encounters an active stream ending (eof).

    


    For example, assuming my playlist was full of problematic media where the audio and video of each file was misaligned :

    


    enter image description here

    


    If I output this media stream to a popular streaming service's server, it could lead to stuttering and/or loss of a/v sync.
Similarly, if I output this media stream to a file and played it back in MPV or another video player, the result appears to be more like this :

    


    enter image description here

    


    I have tried to fix this in MPV in all sorts of ways, trying every relevant command line option available. I even wrote a user script that detects 'eof' audio and skips to the next item in the playlist, but it is not fast enough and still leads to small gaps of audio.

    


    So my only hope is correcting it in ffmpeg. In the event of null audio/video, I need a fallback or a generative filter that can fill these empty gaps with silence (audio) or a colour/image (video).

    


    I'm open to any ideas, and if my understanding in a/v encoding is a little off please educate me.

    


  • Best / simplest way to display FFmpeg frames in Qt5

    7 mars 2018, par esterlein

    I need to display ffmpeg frames on Qt widget. I know about QtFFmpegWrapper, but it seems outdated. I tried to use memcpy() to copy data from RGB ffmpeg frame to QImage and got unhandled exception inside it.

    QImage lastFrame;
    lastFrame = QImage( screen_w, screen_h, QImage::Format_RGB888 );
    for( int y = 0; y < screen_h; ++y )
       memcpy( lastFrame.scanLine(y),
               frameRGB -> data[0] + y * frameRGB -> linesize[0],
               screen_w * 3 );

    I tried sws_getContext() and sws_getCachedContext(), AV_PIX_FMT_BGR24 and AV_PIX_FMT_RGB24 in all parts of ffmpeg processing. All ffmpeg code is from popular tutorials and works fine with SDL and PIX_FMT_YUV420P.

    Any ideas ?
    Maybe it’s not the best/simplest way to display ffmpeg frames on Qt widget ?

    Edit.

    Ok, I used Murat Şeker’s solution with QImage::copy() but now QImage::isNull() returns true.

    Some of my ffmpeg code :

    out_buffer = (uint8_t*)av_malloc( avpicture_get_size( AV_PIX_FMT_RGB32,
                                     codecCtx -> width, codecCtx -> height ));
    avpicture_fill((AVPicture *)frameRGB, out_buffer, AV_PIX_FMT_RGB32,
                  codecCtx -> width, codecCtx -> height);
    img_convert_ctx = sws_getContext( codecCtx -> width, codecCtx -> height,
                                     codecCtx -> pix_fmt, codecCtx -> width,
                                     codecCtx -> height, AV_PIX_FMT_RGB32,
                                     SWS_BICUBIC, NULL, NULL, NULL );
    /* ... */

    if( got_picture ){
       sws_scale( img_convert_ctx, (const uint8_t* const*)frame -> data,
                  frame -> linesize, 0, codecCtx -> height, frameRGB -> data,
                  frameRGB -> linesize );
       QImage imgFrame = QImage( frameRGB -> data[0], frameRGB -> width,
                                 frameRGB -> height, frameRGB -> linesize[0],
                                 QImage::Format_RGB32 ).copy();
       if( imgFrame.isNull()){} // true

       // But I can write this frame to hard disk using BITMAPFILEHEADER
       SaveBMP( frameRGB, codecCtx -> width, codecCtx -> height ); // it works
    }