Recherche avancée

Médias (0)

Mot : - Tags -/gis

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

Autres articles (79)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (14198)

  • How to save video data in a vector using ffmpeg ? (C++)

    25 octobre 2022, par nokla

    I'm new to ffmpeg and I am trying to write a program for video editing.

    


    I want to import a video file and save it somehow in a vector so I could edit its frames later.
When I saved all the decoded AVFrames in a vector I saw it takes a lot of memory and that I need to find a better way to do so.

    


    The function I used for reading a video :

    


    ** the function is in a class that representing video, source type is std::vector<avframe></avframe>

    &#xA;

    void VideoSource::ReadSource(std::string path)&#xA;{&#xA;    // Open the file using libavformat&#xA;    AVFormatContext* av_format_ctx = avformat_alloc_context();&#xA;    if (!av_format_ctx) {&#xA;        printf("Couldn&#x27;t create AVFormatContext\n");&#xA;        return; &#xA;    }&#xA;    if (avformat_open_input(&amp;av_format_ctx, path.c_str(), NULL, NULL) != 0) {&#xA;        printf("Couldn&#x27;t open video file\n");&#xA;        return;&#xA;    }&#xA;&#xA;    // Find the first valid video stream inside the file&#xA;    int video_stream_index = -1;&#xA;    AVCodecParameters* av_codec_params = NULL;&#xA;    const AVCodec* av_codec = NULL;&#xA;    for (int i = 0; i &lt; av_format_ctx->nb_streams; i)&#xA;    {&#xA;        av_codec_params = av_format_ctx->streams[i]->codecpar;&#xA;        av_codec = avcodec_find_decoder(av_codec_params->codec_id);&#xA;&#xA;        if (!av_codec) {&#xA;            continue;&#xA;        }&#xA;        if (av_codec_params->codec_type == AVMEDIA_TYPE_VIDEO) {&#xA;            video_stream_index = i;&#xA;            break;&#xA;        }&#xA;    }&#xA;&#xA;    if (video_stream_index == -1) {&#xA;        printf("Couldn&#x27;t find valid video stream inside file\n");&#xA;        return;&#xA;    }&#xA;&#xA;    // Set up a codec context for the decoder&#xA;    AVCodecContext* av_codec_ctx = avcodec_alloc_context3(av_codec);&#xA;    if (!av_codec_ctx) {&#xA;        printf("Couldn&#x27;t create AVCpdecContext\n");&#xA;        return;&#xA;    }&#xA;&#xA;    if (avcodec_parameters_to_context(av_codec_ctx, av_codec_params) &lt; 0)&#xA;    {&#xA;        printf("Couldn&#x27;t initialize AVCodecContext\n");&#xA;        return;&#xA;    }&#xA;    if (avcodec_open2(av_codec_ctx, av_codec, NULL) &lt; 0) {&#xA;        printf("Couldn&#x27;t open codec\n");&#xA;        return;&#xA;    }&#xA;&#xA;    AVFrame* av_frame = av_frame_alloc();&#xA;    if (!av_frame) {&#xA;        printf("Couldn&#x27;t allocate AVFrame\n");&#xA;        return;&#xA;    }&#xA;    AVPacket* av_packet = av_packet_alloc();&#xA;    if (!av_packet) {&#xA;        printf("Couldn&#x27;t allocate AVPacket\n");&#xA;        return;&#xA;    }&#xA;    int response;&#xA;&#xA;    while (av_read_frame(av_format_ctx, av_packet) >= 0) {&#xA;        if (av_packet->stream_index != video_stream_index) {&#xA;            av_packet_unref(av_packet);&#xA;            continue;&#xA;        }&#xA;        response = avcodec_send_packet(av_codec_ctx, av_packet);&#xA;        if (response &lt; 0) {&#xA;            printf("Failed to decode packet: %s\n", av_err2str(response));&#xA;            return;&#xA;        }&#xA;        response = avcodec_receive_frame(av_codec_ctx, av_frame);&#xA;        if (response == AVERROR(EAGAIN) || response == AVERROR_EOF) {&#xA;            av_packet_unref(av_packet);&#xA;            continue;&#xA;        }&#xA;        else if (response &lt; 0) {&#xA;            printf("Failed to decode frame: %s\n", av_err2str(response));&#xA;            return;&#xA;        }&#xA;        av_packet_unref(av_packet);&#xA;&#xA;        av_packet = av_packet_alloc();&#xA;&#xA;        // response = avcodec_send_frame(av_codec_ctx, av_frame);&#xA;&#xA;        source.push_back(*new AVFrame);&#xA;        source.back() = *av_frame_clone(av_frame);&#xA;&#xA;        av_frame_unref(av_frame);&#xA;    }&#xA;    &#xA;&#xA;    avformat_close_input(&amp;av_format_ctx);&#xA;    avformat_free_context(av_format_ctx);&#xA;    av_frame_free(&amp;av_frame);&#xA;    av_packet_free(&amp;av_packet);&#xA;    avcodec_free_context(&amp;av_codec_ctx);&#xA;}&#xA;

    &#xA;

    I thought maybe I should save it as a vector of encoded AVFrames or as a vector of encoded packet that contains some frames in it.

    &#xA;

    When I tried to encode a single AVFrame, I added this line&#xA;response = avcodec_send_frame(av_codec_ctx, av_frame); before pushing the frame into the vector (You can see it marked as a comment in the code above).
    &#xA;It returned invalid argument (-22) and I am not sure why.

    &#xA;

    Questions :

    &#xA;

      &#xA;
    1. Why did I get that error (-22) ?
    2. &#xA;

    3. How to save an encoded packet with multiple AVFrame in it ?
    4. &#xA;

    5. Is there a better way of working on a video that won't take as much memory ?
    6. &#xA;

    &#xA;

  • Revision 0271ff7775 : Fix speed 7 and speed 12 for rt A recent change has introduced big quality drop

    1er novembre 2014, par Yaowu Xu

    Changed Paths :
     Modify /vp9/encoder/vp9_speed_features.c



    Fix speed 7 and speed 12 for rt

    A recent change has introduced big quality drops for speed 7 and 12
    for —rt mode. The change reverted the big drop and improved quality
    by 9.5% for speed 7 and 13.4% for speed 12.

    Change-Id : I07b82e3bb6002a73af486a083458c88877bdad01

  • doc/muxers : tee muxer - rearrange, add notes and general tidy-up

    19 avril 2018, par Gyan Doshi
    doc/muxers : tee muxer - rearrange, add notes and general tidy-up
    
    • [DH] doc/muxers.texi