Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (95)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (11348)

  • YUY2 image ==>>sws_scale ==>>x264_encoder_encode doesn't work in Windows

    8 décembre 2011, par shiju sasi

    I have a multi media app in Windows using x264 built using MSYS-MingW and ffmpeg Windows binaries. This works for most of the cameras which capture data in RGB24 and RGB32 formats in most of the OSes. But when I tested the app on a Windows 7 (64 bit OS) Sony Vaio Laptop which has an integrated webcam capturing in YUY2 format, the x264_enoder_encode crashes. The sws_scale to convert the YUY2 data to YUV420 Planar any way works fine here too and returns proper stride values. Please check the relevant code fragments that I have attached below.

        x264_param_apply_profile(&m_param, "baseline");
          m_pEncoder = x264_encoder_open(&m_param);
          x264_encoder_parameters(m_pEncoder,&m_param);

          m_encoderConvertCtx = sws_getContext(g_iWidth, g_iHeight, PIX_FMT_YUYV422, SCALE_WIDTH, SCALE_HEIGHT, PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);

          x264_picture_t m_pic_in, m_pic_out;   //X264 picture variables to get the X264 encoded picture out.
          x264_picture_init(&m_pic_in);
    m_pic_in.i_type = X264_CSP_I420;

    x264_nal_t*  m_nals;


    srcstride = g_iWidth * 2;  //For YUYV422 Packed

    AVFrame* pictIn;
    AVFrame* pictOut;

    int iInBytes = avpicture_get_size(PIX_FMT_YUV420P, SCALE_WIDTH, SCALE_HEIGHT);
    uint8_t* outbuffer = (uint8_t*)av_malloc(iInBytes);
    pictOut = avcodec_alloc_frame();

    avpicture_fill((AVPicture*)pictOut, outbuffer, PIX_FMT_YUV420P, SCALE_WIDTH, SCALE_HEIGHT);

    sws_scale(m_encoderConvertCtx, &in_buf, &srcstride, 0, g_iHeight, pictOut->data, pictOut->linesize); //Scale from YUYV422 Packed to YUV420 Plane


    ///Code after Scale begins

    memcpy(m_pic_in.img.plane[0],pictOut->data[0],SCALE_WIDTH * SCALE_HEIGHT);
    memcpy(m_pic_in.img.plane[1],pictOut->data[1],SCALE_WIDTH * SCALE_HEIGHT/4);
    memcpy(m_pic_in.img.plane[2],pictOut->data[2],SCALE_WIDTH * SCALE_HEIGHT/4);
    m_pic_in.img.plane[3] = 0;

    for(int iPlane = 0; iPlane < 3; iPlane++)
    {
    m_pic_in.img.i_stride[iPlane] = pictOut->linesize[iPlane];
    }
    m_pic_in.img.i_stride[3] = 0;

    int frame_size = x264_encoder_encode(m_pEncoder, &m_nals, &i_nals, &m_pic_in, &m_pic_out);

    Please help if possible, as this has been consuming a lot of time at my end. But I am not able to dig in to the library side for debugging. Any experienced hands are requested to assist.

  • YUY2 image ==>>sws_scale ==>>x264_encoder_encode doesn't work in Windows

    8 décembre 2011, par shiju sasi

    I have a multi media app in Windows using x264 built using MSYS-MingW and ffmpeg Windows binaries. This works for most of the cameras which capture data in RGB24 and RGB32 formats in most of the OSes. But when I tested the app on a Windows 7 (64 bit OS) Sony Vaio Laptop which has an integrated webcam capturing in YUY2 format, the x264_enoder_encode crashes. The sws_scale to convert the YUY2 data to YUV420 Planar any way works fine here too and returns proper stride values. Please check the relevant code fragments that I have attached below.

        x264_param_apply_profile(&m_param, "baseline");
          m_pEncoder = x264_encoder_open(&m_param);
          x264_encoder_parameters(m_pEncoder,&m_param);

          m_encoderConvertCtx = sws_getContext(g_iWidth, g_iHeight, PIX_FMT_YUYV422, SCALE_WIDTH, SCALE_HEIGHT, PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);

          x264_picture_t m_pic_in, m_pic_out;   //X264 picture variables to get the X264 encoded picture out.
          x264_picture_init(&m_pic_in);
    m_pic_in.i_type = X264_CSP_I420;

    x264_nal_t*  m_nals;


    srcstride = g_iWidth * 2;  //For YUYV422 Packed

    AVFrame* pictIn;
    AVFrame* pictOut;

    int iInBytes = avpicture_get_size(PIX_FMT_YUV420P, SCALE_WIDTH, SCALE_HEIGHT);
    uint8_t* outbuffer = (uint8_t*)av_malloc(iInBytes);
    pictOut = avcodec_alloc_frame();

    avpicture_fill((AVPicture*)pictOut, outbuffer, PIX_FMT_YUV420P, SCALE_WIDTH, SCALE_HEIGHT);

    sws_scale(m_encoderConvertCtx, &in_buf, &srcstride, 0, g_iHeight, pictOut->data, pictOut->linesize); //Scale from YUYV422 Packed to YUV420 Plane


    ///Code after Scale begins

    memcpy(m_pic_in.img.plane[0],pictOut->data[0],SCALE_WIDTH * SCALE_HEIGHT);
    memcpy(m_pic_in.img.plane[1],pictOut->data[1],SCALE_WIDTH * SCALE_HEIGHT/4);
    memcpy(m_pic_in.img.plane[2],pictOut->data[2],SCALE_WIDTH * SCALE_HEIGHT/4);
    m_pic_in.img.plane[3] = 0;

    for(int iPlane = 0; iPlane < 3; iPlane++)
    {
    m_pic_in.img.i_stride[iPlane] = pictOut->linesize[iPlane];
    }
    m_pic_in.img.i_stride[3] = 0;

    int frame_size = x264_encoder_encode(m_pEncoder, &m_nals, &i_nals, &m_pic_in, &m_pic_out);

    Please help if possible, as this has been consuming a lot of time at my end. But I am not able to dig in to the library side for debugging. Any experienced hands are requested to assist.

  • How to capture camera devices on Windows using Libav ?

    22 septembre 2011, par Occulta

    Is there any way to capture frames from as many camera types as DirectShow do on Windows platform using Libav ? I need to capture a camera output without using DirectShow filters and I want my application to work with many camera devices types.

    I have searched the Internet about this capability of libav and found that it can be done via libav using special input format "vfwcap". Something like that (don't sure about code correctness - I wrote it by myself) :

    AVFormatParameters formatParams = NULL;
    AVInputFormat* pInfmt = NULL;
    pInFormatCtx*  pInFormatCtx = NULL;

    av_register_all();

    //formatParams.device = NULL; //this was probably deprecated and then removed
    formatParams.channel = 0;
    formatParams.standard = "ntsc"; //deprecated too but still available
    formatParams.width = 640;
    formatParams.height = 480;
    formatParams.time_base.num = 1000;
    formatParams.time_base.den = 30000; //so we want 30000/1000 = 30 frames per second
    formatParams.prealloced_context = 0;


    pInfmt = av_find_input_format("vfwcap");
    if( !pInfmt )
    {
     fprintf(stderr,"Unknown input format\n");
     return -1;
    }

    // Open video file (formatParams can be NULL for autodetecting probably)
    if (av_open_input_file(&pInFormatCtx, 0, pInfmt, 0, formatParams) < 0)
      return -1; // Couldn't open device

    /* Same as video4linux code*/

    So another question is : how many devices are supported by Libav ? All I have found about capture cameras output with libav on windows is advice to use DirectShow for this purpose because libav supports too few devices. Maybe situation has already changed now and it does support enough devices to use it in production applications ?

    If this isn't possible.. Well I hope my question won't be useless and this composed from different sources piece of code will help someone interested in this theme 'coz there are really too few information about it in the whole internet.