Recherche avancée

Médias (91)

Autres articles (101)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

Sur d’autres sites (11631)

  • How to convert ffmpeg raw stdout to video

    20 juin 2018, par Данил Вагапов

    I use ffmpeg to capture video from my webcam and stream it via netcat.

    ffmpeg -f v4l2 -r 25 -s 640x480 -i /dev/video0 -f avi pipe:1 | nc -l -p 5000

    I wanna display the stream on my surface view, but I still don’t know how to do it.
    I use socket to get the data from netcat.
    What’s the simpliest way to convert and display this data ?

  • using X264 and librtmp to send live camera frame, but the flash can't show

    9 mai 2016, par brian_wang

    I am using X264 and librtmp to send my live camera frame, all the things seems right. but my web test flash can’t show the correct video. Sometimes it seems correct, but when I re-click play button, it doesn’t show any picture on the flash.

    Here is my X264 config code

    x264_param_default_preset(&x264param, "ultrafast", "zerolatency");
    x264param.i_threads = 2;
    x264param.i_width = width;
    x264param.i_height = height;
    x264param.i_log_level = X264_LOG_DEBUG;
    x264param.i_fps_num = x264param.i_timebase_num= fps;
    x264param.i_fps_den = x264param.i_timebase_den=1;
    x264param.i_frame_total = 0;

    x264param.i_frame_reference =1;
    //x264param.i_frame_reference = 2;
    x264param.i_keyint_min = 25;
    x264param.i_keyint_max = fps*3;
    x264param.i_scenecut_threshold = 40;

    x264param.b_deblocking_filter = 1;
    x264param.b_cabac = 0;
    x264param.analyse.i_trellis = 0;
    x264param.analyse.b_chroma_me = 1;

    x264param.vui.i_sar_width = 0;
    x264param.vui.i_sar_height = 0;
    x264param.i_bframe_bias = 0;
    x264param.b_interlaced= 0;
    x264param.analyse.i_subpel_refine = 6; /* 0..5 -> 1..6 */
    x264param.analyse.i_me_method = X264_ME_DIA;//X264_ME_HEX?X264_ME_DIA
    x264param.analyse.i_me_range = 16;
    x264param.analyse.i_direct_mv_pred = X264_DIRECT_PRED_AUTO;
    x264param.i_deblocking_filter_alphac0 = 0;
    x264param.i_deblocking_filter_beta = 0;
    //x264param.analyse.intra = X264_ANALYSE_I4x4;
    x264param.analyse.intra = X264_ANALYSE_I4x4;//  | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_BSUB16x16;
    x264param.analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_BSUB16x16;
    //edit 2014-7-28
    x264param.analyse.b_transform_8x8 = 1;
    //x264param.analyse.b_transform_8x8 = 0;
    x264param.analyse.b_fast_pskip = 1;
    x264param.i_bframe = 0;
    //x264param.b_intra_refresh
    x264param.analyse.b_weighted_bipred = 0;

    //// Intra refres:
    x264param.i_keyint_max = 250;
    x264param.b_intra_refresh = 0;
    ////Rate control:
    //x264param.rc.i_rc_method = X264_RC_CRF;

    //Rate Control
    x264param.rc.f_ip_factor = 1.4f;
    x264param.rc.f_pb_factor = 1.3f;
    x264param.rc.f_qcompress = 1.0;
    x264param.rc.i_qp_min = 20;//20;
    x264param.rc.i_qp_max = 32;
    x264param.rc.i_qp_step = 1;

    switch (0)
    {
    case 0: /* 1 PASS ABR */
       x264param.rc.i_rc_method = X264_RC_ABR;
       x264param.rc.i_bitrate = 300; // max = 5000
       x264param.rc.b_mb_tree = 0;
       break;
    case 1: /* 1 PASS CQ */
       x264param.rc.i_rc_method = X264_RC_CQP;
       x264param.rc.i_qp_constant = 26;//10 - 51
       break;
    }

    //For streaming:
    x264param.b_repeat_headers = 1;
    x264param.b_annexb = 1;
    x264_param_apply_profile(&x264param, "baseline");
    encoder = x264_encoder_open(&x264param);
    x264_picture_init( &pic_in );
    x264_picture_alloc(&pic_in, X264_CSP_I420, width, height);

    pic_in.img.i_csp = X264_CSP_I420|X264_CSP_VFLIP;
    pic_in.img.i_plane = 3;
    pic_in.i_type = X264_TYPE_AUTO;

    Sending To RTMP :

    sws_scale(convertCtx,&a,&scribe,0,height, pic_in.img.plane, pic_in.img.i_stride);
    int i_nal;
    int i_frame_size = x264_encoder_encode( encoder, &nal, &i_nal, &pic_in, &pic_out );
    if(i_frame_size <= 0){
       printf("\t!!!FAILED encode frame \n");
    }else{
       for (int i = 0,last=0; i < i_nal;i++)  
       {
           fwrite(nal[i].p_payload, 1, i_frame_size-last, fpw1);
           if (nal[i].i_type == NAL_SPS) {
               sps_len = nal[i].i_payload-4;
               sps  = new unsigned char[sps_len];
               memcpy(sps,nal[i].p_payload+4,sps_len);
           } else if (nal[i].i_type == NAL_PPS) {
               pps_len = nal[i].i_payload-4;
               pps  = new unsigned char[sps_len];
               memcpy(pps,nal[i].p_payload+4,pps_len);
               send_video_sps_pps();
               free(sps);
               free(pps);
           } else {
               send_rtmp_video(nal[i].p_payload,i_frame_size-last);
               break;
           }
           last += nal[i].i_payload;
       }
    }

    Send PPS and SPS

    void send_video_sps_pps(){
    if(rtmp!= NULL){
       RTMPPacket * packet;
       unsigned char * body;
       int i;

       packet = (RTMPPacket *)malloc(RTMP_HEAD_SIZE+1024);
       memset(packet,0,RTMP_HEAD_SIZE);

       packet->m_body = (char *)packet + RTMP_HEAD_SIZE;
       body = (unsigned char *)packet->m_body;
       i = 0;
       body[i++] = 0x17;
       body[i++] = 0x00;

       body[i++] = 0x00;
       body[i++] = 0x00;
       body[i++] = 0x00;

       /*AVCDecoderConfigurationRecord*/
       body[i++] = 0x01;
       body[i++] = sps[1];
       body[i++] = sps[2];
       body[i++] = sps[3];
       body[i++] = 0xff;

       /*sps*/
       body[i++]   = 0xe1;
       body[i++] = (sps_len >> 8) & 0xff;
       body[i++] = sps_len & 0xff;
       memcpy(&body[i],sps,sps_len);
       i +=  sps_len;

       /*pps*/
       body[i++]   = 0x01;
       body[i++] = (pps_len >> 8) & 0xff;
       body[i++] = (pps_len) & 0xff;
       memcpy(&body[i],pps,pps_len);
       i +=  pps_len;

       packet->m_packetType = RTMP_PACKET_TYPE_VIDEO;
       packet->m_nBodySize = i;
       packet->m_nChannel = 0x04;
       packet->m_nTimeStamp = 0;
       packet->m_hasAbsTimestamp = 0;
       packet->m_headerType = RTMP_PACKET_SIZE_MEDIUM;
       packet->m_nInfoField2 = rtmp->m_stream_id;

       RTMP_SendPacket(rtmp,packet,TRUE);
       free(packet);  
       rtmp_start_time = GetTickCount();
    }else{
       std::cout<<"RTMP is not ready"<code>

    Send video Frame

    void send_rtmp_video(unsigned char * buf,int len){
    RTMPPacket * packet;
    long timeoffset = GetTickCount() - rtmp_start_time;

    int type = buf[0]&0x1f;

    packet = (RTMPPacket *)malloc(RTMP_HEAD_SIZE+len+9);
    memset(packet,0,RTMP_HEAD_SIZE);

    packet->m_body = (char *)packet + RTMP_HEAD_SIZE;
    packet->m_nBodySize = len + 9;

    /*send video packet*/
    unsigned char *body = (unsigned char *)packet->m_body;
    memset(body,0,len+9);

    /*key frame*/
    body[0] = 0x27;
    if (type == NAL_SLICE_IDR) {
       body[0] = 0x17;
    }

    body[1] = 0x01;   /*nal unit*/
    body[2] = 0x00;
    body[3] = 0x00;
    body[4] = 0x00;

    body[5] = (len >> 24) & 0xff;
    body[6] = (len >> 16) & 0xff;
    body[7] = (len >>  8) & 0xff;
    body[8] = (len ) & 0xff;

    /*copy data*/
    memcpy(&body[9],buf,len);

    packet->m_hasAbsTimestamp = 0;
    packet->m_packetType = RTMP_PACKET_TYPE_VIDEO;
    if(rtmp != NULL){
       packet->m_nInfoField2 = rtmp->m_stream_id;
    }
    packet->m_nChannel = 0x04;
    packet->m_headerType = RTMP_PACKET_SIZE_LARGE;
    packet->m_nTimeStamp = timeoffset;

    if(rtmp != NULL){
       RTMP_SendPacket(rtmp,packet,TRUE);
    }
    free(packet);

    }

  • What is the best equalizer setting you can suggest guys ?

    7 mars 2018, par Asit Rout

    I have been working with ffmpeg and need some help with equalizer setting. Currently I am using

    f=40 w=40 g=5 t=1           |   f=130 w=140 g=4 t=1     |
    f=500 w=600 g=2 t=1         |   f=1400 w=1200 g=2 t=1   |
    f=3000 w=2000 g=1 t=1       |   f=5500 w=3000 g=0 t=1   |
    f=9500 t=1 w=5000 g=8 t=1   |   f=14000 w=4000 g=10 t=1

    Any comments and suggestions will be really helpful.