Recherche avancée

Médias (0)

Mot : - Tags -/flash

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

Autres articles (69)

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

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

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (5347)

  • FFMPEG : how to determine which filters are supported by specific hardware acceleration contexts ?

    7 juin 2020, par John Allard

    I'm having trouble figuring out precisely which filter graph operations are supported by each of the available hardware acceleration methods. I know, for example, that almost all of these methods perform simple operations like scaling, but what about more complicated ffmpeg filters like the new v360 filter or the mestimate filter ?

    



    There's this page (https://trac.ffmpeg.org/wiki/HWAccelIntro) that everyone finds when researching hardware accel with ffmpeg but it mostly touched on encoding and decoding and not filtering.

    


  • How to make video effect in video by ffmpeg module in Node JS ?

    20 juin 2015, par Nazmul Hossain Bilash

    I am working with ffmpeg. I want to give effects in video like grayscale, Sepia, Blur in video. Also I want to add text in those videos. How can I make this with ffmpeg in node js. I have worked with fluent-ffmpeg & ffmpeg node module.

    I have seen this article : https://trac.ffmpeg.org/wiki/FancyFilteringExamples Here is the example of video effect by ffmpeg command. But I need to to how I can make this effects through Node JS.

  • AVPacket->Data is empty "0/0" but has size

    24 juin 2024, par CottonBuds

    I am using libAV* to encode frames(unsigned char*) from my streaming application. I encoded my initialized frames but when I tried to get the avpacket. it returns an avpacket with a size but without data inside it "0/0"AvPacket no data

    


    here is my code

    


    StreamCodec.h

    


    &#xA;class StreamCodec : public QObject &#xA;{&#xA;    Q_OBJECT&#xA;public:&#xA;    StreamCodec(int height, int width, int fps);&#xA;&#xA;public slots:&#xA;    void encodeFrame(std::shared_ptr<uchar> pData);&#xA;    void run();&#xA;&#xA;signals:&#xA;    void encodeFinish(AVPacket* packet);&#xA;&#xA;private:&#xA;    void initializeSWS();&#xA;    void initializeCodec();&#xA;&#xA;    AVPacket* allocatepacket(AVFrame* frame);&#xA;    AVFrame* allocateFrame(std::shared_ptr<uchar> pData);&#xA;    AVFrame* formatFrame(AVFrame* frame);&#xA;&#xA;    const AVCodec* codec;&#xA;    AVCodecContext* context;&#xA;    SwsContext *swsContext;&#xA;    int bytesPerPixel;&#xA;    int width;&#xA;    int height;&#xA;    int fps;&#xA;    int pts = 0;&#xA;};&#xA;&#xA;</uchar></uchar>

    &#xA;

    StreamCodec.cpp

    &#xA;

    StreamCodec::StreamCodec(int height, int width, int fps)&#xA;{&#xA;    this->height = height;&#xA;    this->width = width;&#xA;    this->fps = fps;&#xA;}&#xA;&#xA;void StreamCodec::initializeCodec()&#xA;{&#xA;    codec = avcodec_find_encoder(AV_CODEC_ID_H264);&#xA;    if (!codec) {&#xA;        qDebug() &lt;&lt; "Codec not found";&#xA;        exit(1);&#xA;    }&#xA;     &#xA;    context = avcodec_alloc_context3(codec);&#xA;    if (!context) {&#xA;        qDebug() &lt;&lt; "Could not allocate codec context";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    context->height = height;&#xA;    context->width = width;&#xA;    context->time_base.num = 1;&#xA;    context->time_base.den = fps;&#xA;    context->framerate.num = fps;&#xA;    context->framerate.den = 1;&#xA;    context->pix_fmt = AV_PIX_FMT_YUV420P;&#xA;&#xA;    context->gop_size = 0;&#xA;&#xA;    av_opt_set(context->priv_data, "preset", "ultrafast", 0);&#xA;    av_opt_set(context->priv_data, "crf", "35", 0);&#xA;    av_opt_set(context->priv_data, "tune", "zerolatency", 0);&#xA;&#xA;    auto desc = av_pix_fmt_desc_get(AV_PIX_FMT_BGRA);&#xA;    if (!desc){&#xA;        qDebug() &lt;&lt; "Can&#x27;t get descriptor for pixel format";&#xA;        exit(1);&#xA;    }&#xA;    bytesPerPixel = av_get_bits_per_pixel(desc) / 8;&#xA;    if(av_get_bits_per_pixel(desc) % 8 != 0){&#xA;        qDebug() &lt;&lt; "Unhandled bits per pixel, bad in pix fmt";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    int err = avcodec_open2(context, codec, nullptr);&#xA;    if (err &lt; 0) {&#xA;        qDebug() &lt;&lt; "Could not open codec";&#xA;        exit(1);&#xA;    }&#xA;}&#xA;void StreamCodec::initializeSWS()&#xA;{&#xA;    swsContext = sws_getContext(width, height, AV_PIX_FMT_BGRA, width, height, AV_PIX_FMT_YUV420P, SWS_BILINEAR, NULL, NULL, NULL);&#xA;    if (!swsContext) {&#xA;        qDebug() &lt;&lt; "Could not allocate SWS Context";&#xA;        exit(1);&#xA;    }&#xA;}&#xA;&#xA;void StreamCodec::encodeFrame(std::shared_ptr<uchar> pData)&#xA;{&#xA;    int err = 0;&#xA;    AVFrame* frame1 = allocateFrame(pData);&#xA;    AVFrame* frame = formatFrame(frame1);&#xA;&#xA;    err = avcodec_send_frame(context, frame);&#xA;    if (err &lt; 0) {&#xA;        qDebug() &lt;&lt; "Error sending frame to codec";&#xA;        char* errStr = new char;&#xA;        av_make_error_string(errStr, 255, err);&#xA;        qDebug() &lt;&lt; errStr;&#xA;        av_frame_free(&amp;frame);&#xA;        exit(1);&#xA;    }&#xA;&#xA;    while (true) {&#xA;        AVPacket* packet = allocatepacket(frame);&#xA;        err = avcodec_receive_packet(context, packet);&#xA;        if (err == AVERROR_EOF || err == AVERROR(EAGAIN) ) {&#xA;            av_packet_unref(packet);&#xA;            av_packet_free(&amp;packet);&#xA;            break;&#xA;        }&#xA;        if (err &lt; 0) {&#xA;            qDebug() &lt;&lt; "Error recieving to codec";&#xA;            char* errStr = new char;&#xA;            av_make_error_string(errStr, 255, err);&#xA;            qDebug() &lt;&lt; errStr;&#xA;            av_frame_free(&amp;frame);&#xA;            av_frame_free(&amp;frame1);&#xA;            av_packet_free(&amp;packet);&#xA;            exit(1);&#xA;        }&#xA;        emit encodeFinish(packet);&#xA;    }&#xA;&#xA;    av_frame_free(&amp;frame);&#xA;    av_frame_free(&amp;frame1);&#xA;}&#xA;&#xA;void StreamCodec::run()&#xA;{&#xA;    initializeCodec();&#xA;    initializeSWS();&#xA;}&#xA;&#xA;AVPacket* StreamCodec::allocatepacket(AVFrame* frame)&#xA;{&#xA;    AVPacket* packet = av_packet_alloc();&#xA;    if (!packet) {&#xA;        qDebug() &lt;&lt; "Could not allocate memory for packet";&#xA;        av_frame_free(&amp;frame);&#xA;        exit(1);&#xA;    }&#xA;    return packet;&#xA;}&#xA;&#xA;AVFrame* StreamCodec::allocateFrame(std::shared_ptr<uchar> pData)&#xA;{&#xA;    AVFrame* frame = av_frame_alloc();&#xA;    if (!frame) {&#xA;        qDebug() &lt;&lt; "Could not allocate memory for frame";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    frame->format = AV_PIX_FMT_BGRA;&#xA;    frame->width = width;&#xA;    frame->height = height;&#xA;    frame->pts = pts;&#xA;&#xA;    if (av_frame_get_buffer(frame, 0) &lt; 0) {&#xA;        qDebug() &lt;&lt; "Failed to get frame buffer";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if (av_frame_make_writable(frame) &lt; 0) {&#xA;        qDebug() &lt;&lt; "Failed to make frame writable";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    frame->data[0] = pData.get();&#xA;&#xA;    return frame;&#xA;}&#xA;&#xA;AVFrame* StreamCodec::formatFrame(AVFrame* frame)&#xA;{&#xA;    AVFrame* yuvFrame = av_frame_alloc();&#xA;    if (!yuvFrame) {&#xA;        qDebug() &lt;&lt; "Unable to allocate memory for yuv frame";&#xA;        av_frame_free(&amp;frame);&#xA;        exit(1);&#xA;    }&#xA;&#xA;    yuvFrame->format = context->pix_fmt;&#xA;    yuvFrame->width = width;&#xA;    yuvFrame->height = height;&#xA;    yuvFrame->pts = pts;&#xA;    pts &#x2B;= 1;&#xA;    &#xA;    if (av_frame_get_buffer(yuvFrame, 0) &lt; 0) {&#xA;        qDebug() &lt;&lt; "Failed to get frame buffer";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if (av_frame_make_writable(yuvFrame) &lt; 0) {&#xA;        qDebug() &lt;&lt; "Failed to make frame writable";&#xA;        exit(1);&#xA;    }&#xA;&#xA;    int err = sws_scale(swsContext, (const uint8_t* const*)frame->data, frame->linesize, 0, height, (uint8_t* const*)yuvFrame->data, yuvFrame->linesize);&#xA;    if (err &lt; 0) {&#xA;        qDebug() &lt;&lt; "Could not format frame to yuv420p";&#xA;        exit(1);&#xA;    }&#xA;    return yuvFrame;&#xA;}&#xA;&#xA;&#xA;</uchar></uchar>

    &#xA;

    I tried checking for the frames and I'm pretty sure the data is there. I just dont know what to do at this point.

    &#xA;

    edit 1

    &#xA;

    I tried viewing the data using visual studio code "view" button it showed me this

    &#xA;

    enter image description here

    &#xA;

    Thank you so much to all that commented and pointed me to the right direction.

    &#xA;