Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (43)

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

  • MediaSPIP Player : les contrôles

    26 mai 2010, par

    Les contrôles à la souris du lecteur
    En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...)

  • 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

Sur d’autres sites (7192)

  • Why does every encoded frame's size increase after I had use to set one frame to be key in intel qsv of ffmpeg

    22 avril 2021, par TONY

    I used intel's qsv to encode h264 video in ffmpeg. My av codec context settings is like as below :

    


     m_ctx->width = m_width;
    m_ctx->height = m_height;
    m_ctx->time_base = { 1, (int)fps };
    m_ctx->qmin = 10;
    m_ctx->qmax = 35;
    m_ctx->gop_size = 3000;
    m_ctx->max_b_frames = 0;
    m_ctx->has_b_frames = false;
    m_ctx->refs = 2;
    m_ctx->slices = 0;
    m_ctx->codec_id = m_encoder->id;
    m_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
    m_ctx->pix_fmt = m_h264InputFormat;
    m_ctx->compression_level = 4;
    m_ctx->flags &= ~AV_CODEC_FLAG_CLOSED_GOP;
    AVDictionary *param = nullptr;
    av_dict_set(&param, "idr_interval", "0", 0);
    av_dict_set(&param, "async_depth", "1", 0);
    av_dict_set(&param, "forced_idr", "1", 0);


    


    and in the encoding, I set the AVFrame to be AV_PICTURE_TYPE_I when key frame is needed :

    


      if(key_frame){
        encodeFrame->pict_type = AV_PICTURE_TYPE_I;
    }else{
        encodeFrame->pict_type = AV_PICTURE_TYPE_NONE;
    }
    avcodec_send_frame(m_ctx, encodeFrame);
    avcodec_receive_packet(m_ctx, m_packet);
   std::cerr<<"packet size is "<size<<",is key frame "<code>

    


    The strange phenomenon is that if I had set one frame to AV_PICTURE_TYPE_I, then every encoded frame's size after the key frame would increase. If I change the h264 encoder to x264, then it's ok.

    


    The packet size is as below before I call "encodeFrame->pict_type = AV_PICTURE_TYPE_I" :

    


    packet size is 26839
packet size is 2766
packet size is 2794
packet size is 2193
packet size is 1820
packet size is 2542
packet size is 2024
packet size is 1692
packet size is 2095
packet size is 2550
packet size is 1685
packet size is 1800
packet size is 2276
packet size is 1813
packet size is 2206
packet size is 2745
packet size is 2334
packet size is 2623
packet size is 2055


    


    If I call "encodeFrame->pict_type = AV_PICTURE_TYPE_I", then the packet size is as below :

    


    packet size is 23720,is key frame 1
packet size is 23771,is key frame 0
packet size is 23738,is key frame 0
packet size is 23752,is key frame 0
packet size is 23771,is key frame 0
packet size is 23763,is key frame 0
packet size is 23715,is key frame 0
packet size is 23686,is key frame 0
packet size is 23829,is key frame 0
packet size is 23774,is key frame 0
packet size is 23850,is key frame 0


    


  • FFMPEG in Node.js : Conversion Failed

    11 juillet 2024, par cuneyttyler

    I have a small node.js web app. I use like this in a get request :

    


    app.get('/api/voice/:gender/:voice/:pitch', function(req, res){
        if(req.params.pitch == "1" || req.params.pitch == "1.0") {
            const file = "./voices/" + req.params.gender.toLowerCase() + "/" + req.params.voice + ".mp3"
            res.download(file);
            return
        }

        const inputFile = "./voices/" + req.params.gender.toLowerCase() + "/" + req.params.voice + ".mp3"
        const output_file = "./Audio/Temp/" + req.params.voice + ".mp3"
        ffmpeg()
                .input(inputFile)
                .audioCodec('pcm_s16le') // Set the audio codec to PCM with 16-bit depth
                .audioFrequency(44100) // Set the sample rate
                .on('error', function(err) {
                    console.error('Error while converting:', err);
                })
                .on('end', function() {
                    // res.download(output_file)
                })
                .save(output_file);

    });


    


    It gives Conversion Failed error :

    


    [2024-07-11T18:11:22.880Z] Error while converting: Error: ffmpeg exited with code 1: Conversion failed!&#xA;&#xA;    at ChildProcess.<anonymous> (d:\Dev\Anima\Client\node_modules\fluent-ffmpeg\lib\processor.js:180:22)&#xA;    at ChildProcess.emit (d:\Dev\Anima\Client\lib\events.js:519:28)&#xA;    at ChildProcess._handle.onexit (d:\Dev\Anima\Client\lib\internal\child_process.js:294:12)&#xA;    at Process.callbackTrampoline (node:internal/async_hooks:130:17) {stack: &#x27;Error: ffmpeg exited with code 1: Conversion …Trampoline (node:internal/async_hooks:130:17)&#x27;, message: &#x27;ffmpeg exited with code 1: Conversion failed!&#xA;&#x27;}&#xA;</anonymous>

    &#xA;

    When I use same code in a node.js desktop(.exe) app, it successfully runs. When I use it in an express.js app, it fails. Error message is not clear. What is the issue ?

    &#xA;

  • lavc/vvc : Check slice structure

    10 janvier, par Frank Plowman
    lavc/vvc : Check slice structure
    

    The criteria for slice structure validity is similar to that of
    subpicture structure validity that we saw not too long ago [1].
    The relationship between tiles and slices must satisfy the following
    properties :

    * Exhaustivity. All tiles in a picture must belong to a slice. The
    tiles cover the picture, so this implies the slices must cover the
    picture.
    * Mutual exclusivity. No tile may belong to more than one slice, i.e.
    slices may not overlap.

    In most cases these properties are guaranteed by the syntax. There is
    one noticable exception however : when pps_tile_idx_delta_present_flag is
    equal to one, each slice is associated with a syntax element
    pps_tile_idx_delta_val[i] which "specifies the difference between the
    tile index of the tile containing the first CTU in the ( i + 1 )-th
    rectangular slice and the tile index of the tile containing the first
    CTU in the i-th rectangular slice" [2]. When these syntax elements are
    present, the i-th slice can begin anywhere and the usual guarantees
    provided by the syntax are lost.

    The patch detects slice structures which violate either of the two
    properties above, and are therefore invalid, while building the
    slice map. Should the slice map be determined to be invalid, an
    AVERROR_INVALIDDATA is returned. This prevents issues including
    segmentation faults when trying to decode, invalid bitstreams.

    [1] : https://ffmpeg.org//pipermail/ffmpeg-devel/2024-October/334470.html
    [2] : H.266 (V3) Section 7.4.3.5, Picture parameter set RBSP semantics

    Signed-off-by : Frank Plowman <post@frankplowman.com>

    • [DH] libavcodec/vvc/ps.c