Recherche avancée

Médias (0)

Mot : - Tags -/clipboard

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

Autres articles (31)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (3052)

  • avutil/timecode : fix av_timecode_get_smpte_from_framenum with 50/60 fps

    20 juillet 2020, par Marton Balint
    avutil/timecode : fix av_timecode_get_smpte_from_framenum with 50/60 fps
    

    SMPTE 12M timecode can only count frames up to 39, because the tens-of-frames
    value is stored in 2 bit. In order to resolve this 50/60 fps SMPTE timecode is
    using the field bit (which is the same bit as the phase correction bit) to
    signal the least significant bit of a 50/60 fps timecode. See SMPTE ST
    12-1:2014 section 12.1.

    Therefore we slightly change the format of the return value of
    av_timecode_get_smpte_from_framenum and AV_FRAME_DATA_S12M_TIMECODE and start
    using the previously unused Phase Correction bit as Field bit. (As the SMPTE
    standard suggests)

    We add 50/60 fps support to av_timecode_get_smpte_from_framenum by calling the
    recently added av_timecode_get_smpte function in it which already handles this
    properly.

    This change affects the decklink indev and the DV and MXF muxers. MXF has no
    fate test for 50/60fps content, DV does, therefore the changes.

    MediaInfo (a recent version) confirms that half-frame timecode must be inserted
    to DV. MXFInspect confirms valid timecode insertion to the System Item of MXF
    files. For MXF, also see EBU R122.

    Note that for DV the field flag is not used because in the HDV specs (SMPTE
    370M) it is still defined as biphase mark polarity correction flag. So it
    should not matter that the DV muxer overrides the field bit.

    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] libavutil/timecode.c
    • [DH] libavutil/timecode.h
    • [DH] tests/ref/vsynth/vsynth1-dv-hd
    • [DH] tests/ref/vsynth/vsynth2-dv-hd
    • [DH] tests/ref/vsynth/vsynth3-dv-hd
    • [DH] tests/ref/vsynth/vsynth_lena-dv-hd
  • Creating GIF from QImages with ffmpeg

    21 mars 2020, par Sierra

    I would like to generate GIF from QImage, using ffmpeg - all of that programmatically (C++). I’m working with Qt 5.6 and the last build of ffmpeg (build git-0a9e781 (2016-06-10).

    I’m already able to convert these QImage in .mp4 and it works. I tried to use the same principle for the GIF, changing format pixel and codec. GIF is generated with two pictures (1 second each), in 15 FPS.

    ## INITIALIZATION
    #####################################################################

    // Filepath : "C:/Users/.../qt_temp.Jv7868.gif"  
    // Allocating an AVFormatContext for an output format...
    avformat_alloc_output_context2(formatContext, NULL, NULL, filepath);

    ...

    // Adding the video streams using the default format codecs and initializing the codecs.
    stream = avformat_new_stream(formatContext, *codec);

    AVCodecContext * codecContext = avcodec_alloc_context3(*codec);

    context->codec_id       = codecId;
    context->bit_rate       = 400000;
    ...
    context->pix_fmt        = AV_PIX_FMT_BGR8;

    ...

    // Opening the codec...
    avcodec_open2(codecContext, codec, NULL);

    ...

    frame = allocPicture(codecContext->width, codecContext->height, codecContext->pix_fmt);
    tmpFrame = allocPicture(codecContext->width, codecContext->height, AV_PIX_FMT_RGBA);

    ...

    avformat_write_header(formatContext, NULL);

    ## ADDING A NEW FRAME
    #####################################################################

    // Getting in parameter the QImage: newFrame(const QImage &amp; image)
    const qint32 width  = image.width();
    const qint32 height = image.height();

    // Converting QImage into AVFrame
    for (qint32 y = 0; y &lt; height; y++) {
       const uint8_t * scanline = image.scanLine(y);

       for (qint32 x = 0; x &lt; width * 4; x++) {
           tmpFrame->data[0][y * tmpFrame->linesize[0] + x] = scanline[x];
       }
    }

    ...

    // Scaling...
    if (codec->pix_fmt != AV_PIX_FMT_BGRA) {
       if (!swsCtx) {
           swsCtx = sws_getContext(codec->width, codec->height,
                                   AV_PIX_FMT_BGRA,
                                   codec->width, codec->height,
                                   codec->pix_fmt,
                                   SWS_BICUBIC, NULL, NULL, NULL);
       }

       sws_scale(swsCtx,
                 (const uint8_t * const *)tmpFrame->data,
                 tmpFrame->linesize,
                 0,
                 codec->height,
                 frame->data,
                 frame->linesize);
    }
    frame->pts = nextPts++;

    ...

    int gotPacket = 0;
    AVPacket packet = {0};

    av_init_packet(&amp;packet);
    avcodec_encode_video2(codec, &amp;packet, frame, &amp;gotPacket);

    if (gotPacket) {
       av_packet_rescale_ts(paket, *codec->time_base, stream->time_base);
       paket->stream_index = stream->index;

       av_interleaved_write_frame(formatContext, paket);
    }

    But when I’m trying to modify the video codec and pixel format to match with GIF specifications, I’m facing some issues.
    I tried several codecs such as AV_CODEC_ID_GIF and AV_CODEC_ID_RAWVIDEO but none of them seem to work. During the initialization phase, avcodec_open2() always returns such kind of errors :

    Specified pixel format rgb24 is invalid or not supported
    Could not open video codec:  gif

    EDIT 17/06/2016

    Digging a little bit more, avcodec_open2() returns -22 :

    #define EINVAL          22      /* Invalid argument */

    EDIT 22/06/2016

    Here are the flags used to compile ffmpeg :

    "FFmpeg/Libav configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib"

    Did I miss a crucial one for GIF ?

    EDIT 27/06/2016

    Thanks to Gwen, I have a first output : I setted the context->pix_fmt to AV_PIX_FMT_BGR8. Btw I’m still facing some issues with the generated GIF. It’s not playing and encoding appears to fail.

    GIF generated in command lines with ffmpeg (left) . . . GIF generated programmatically (right)
    Generated in command line with ffmpeg
    enter image description here

    It looks like some options are not defined... also may be a wrong conversion between QImage and AVFrame ? I updated the code above. It represents a lot of code, so I tried to stay short. Don’t hesitate to ask more details.

    End of EDIT

    I’m not really familiar with ffmpeg, any kind of help would be highly appreciated. Thank you.

  • How to get FFMPEG to use more GPU when encoding

    24 mars 2023, par Entropy

    so the situation is as following

    &#xA;

    Im receiging 20/30 uncompressed image per second. format is either PNG or Bitmap. Each individual photo size is between 40 and 50 mb (all have same size since uncompressed).

    &#xA;

    I want to encode them to a 265 lossless video and stream them to a http server using FFMPEG.&#xA;The output video is 1920x1080, so there is some downsampling.&#xA;Compression is allowed but nothing is allowed to be lost other than the down sampling.

    &#xA;

    now i m still in the testing phase. i have a 500 sample image. and i m tryng to encode them as effeciently as possible.&#xA;Im using commands such as :

    &#xA;

    ffmpeg  -hwaccel cuvid -f  image2  -i "0(%01d).png" -framerate 30 / &#xA;-pix_fmt p010le -c:v hevc_nvenc -preset lossless -rc vbr_hq /&#xA;-b:v 6M -maxrate:v 10M  -vf scale=1920:1080  -c:a aac -b:a 240k result.mp4&#xA;

    &#xA;

    I have a powerfull modern quadro GPU and a 6 cores intel CPU and an Nvme hard drive.

    &#xA;

    The usuage of the GPU when encoding is exactly 10%, CPU is circa 30-40%

    &#xA;

    How can i get GPU usuage to 80% ? The machine on which im going to run the code will have at leat a quadro 4000 (maybe stronger) and i want to use it to the fullest

    &#xA;