Recherche avancée

Médias (91)

Autres articles (80)

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

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

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, 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 (...)

Sur d’autres sites (6156)

  • 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;

  • Anomalie #2109 : Utiliser bcrypt au lieu de SHA256 pour les mots de passe

    1er juillet 2011, par nicolas -

    Tiens, c’était justement l’objet de la conf de @dioxmat à Sud Web : http://sudweb.fr/post/Comment-stocker-les-mots-de-passe-de-vos-utilisateurs

  • Anomalie #3689 : Des messages d’erreurs qui ne semblent pas avoir lieu d’être

    14 août 2016, par b b

    Voir svp:r99161, merci marcimat :)