Recherche avancée

Médias (0)

Mot : - Tags -/flash

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

Autres articles (97)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

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

Sur d’autres sites (9888)

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

    }

  • I have an application in flask where it streams a camera using ffmpeg, the problem is that I can not display the video from the camera using the GPU [closed]

    17 janvier, par Ruben

    I'll put you in context, I am using flask (python) to display a camera in the browser to stream it, for this I use the following Python code :

    


    command = [
     'ffmpeg',
     '-loglevel', 'warning',
     '-rtsp_transport', 'tcp',
     '-i', self.config['url'],
     '-map', '0:v:0', # fuerzo que solo procese el video
     '-vf', f'fps={self.config["fps"]},scale=640:360:force_original_aspect_ratio=decrease',
     '-c:v', 'h264_nvenc', # especificamos que queremos tirar de la gpu de nvidia
     '-preset', 'p7', # ajusta para la maxima calidad/velocidad (p1 mas rapida pero peor calidad - p7 más lento pero mejor calidad)
     '-qp', self.config['quality'], # control de calidad del codificador (0 [mejor calidad] - 51 [peor calidad])
     '-pix_fmt', 'yuv444p', # se mete explicitamente el formato de pixeles
     '-color_range', 'pc',
     '-an', # desactiva el audio
     '-f', 'image2pipe',
     'pipe:1'
] 

self.process = subprocess.Popen(
   command,
   stdout=subprocess.PIPE,
   stderr=subprocess.PIPE,
   bufsize=10**8
)


    


    The problem is that it does not display the video streaming, but it connects correctly to the camera.

    


    On the other hand, It show me the following warnings, which may have something to do with the display, it's probably the second warning that has to do with the pixel format :

    


    DEBUG :main:FFmpeg [camera1] : Guessed Channel Layout for Input Stream #0.1 : mono
DEBUG :main:FFmpeg [camera1] : [swscaler @ 0x560f70b78680] deprecated pixel format used, make sure you did set range correctly

    


    The server has different encodes installed :

    


    DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders : h264 h264_v4l2m2m h264_qsv h264_cuvid ) (encoders : libx264 libx264rgb h264_nvenc h264_omx h264_qsv h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )

    


    Y uso el h264_nvenc, tambien el servidor tiene soporte de aceleración de hardware con :

    


    libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Hardware acceleration methods :
vdpau
cuda
vaapi
qsv
drm
opencl

    


    Between them h264_nvenc uses cuda

    


    I expand a little on the information it provides me when using h264_nvenc :

    


    Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:&#xA;    General capabilities: dr1 delay hardware&#xA;    Threading capabilities: none&#xA;    Supported hardware devices: cuda cuda&#xA;    Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda&#xA;h264_nvenc AVOptions:&#xA;  -preset            <int>        E..V....... Set the encoding preset (from 0 to 18) (default p4)&#xA;     default         0            E..V.......&#xA;     slow            1            E..V....... hq 2 passes&#xA;     medium          2            E..V....... hq 1 pass&#xA;     fast            3            E..V....... hp 1 pass&#xA;     hp              4            E..V.......&#xA;     hq              5            E..V.......&#xA;     bd              6            E..V.......&#xA;     ll              7            E..V....... low latency&#xA;     llhq            8            E..V....... low latency hq&#xA;     llhp            9            E..V....... low latency hp&#xA;     lossless        10           E..V.......&#xA;     losslesshp      11           E..V.......&#xA;     p1              12           E..V....... fastest (lowest quality)&#xA;     p2              13           E..V....... faster (lower quality)&#xA;     p3              14           E..V....... fast (low quality)&#xA;     p4              15           E..V....... medium (default)&#xA;     p5              16           E..V....... slow (good quality)&#xA;     p6              17           E..V....... slower (better quality)&#xA;     p7              18           E..V....... slowest (best quality)&#xA;  -tune              <int>        E..V....... Set the encoding tuning info (from 1 to 4) (default hq)&#xA;     hq              1            E..V....... High quality&#xA;     ll              2            E..V....... Low latency&#xA;     ull             3            E..V....... Ultra low latency&#xA;     lossless        4            E..V....... Lossless&#xA;  -profile           <int>        E..V....... Set the encoding profile (from 0 to 3) (default main)&#xA;     baseline        0            E..V.......&#xA;     main            1            E..V.......&#xA;     high            2            E..V.......&#xA;     high444p        3            E..V.......&#xA;  -level             <int>        E..V....... Set the encoding level restriction (from 0 to 62) (default auto)&#xA;     auto            0            E..V.......&#xA;     1               10           E..V.......&#xA;     1.0             10           E..V.......&#xA;     1b              9            E..V.......&#xA;     1.0b            9            E..V.......&#xA;     1.1             11           E..V.......&#xA;     1.2             12           E..V.......&#xA;     1.3             13           E..V.......&#xA;     2               20           E..V.......&#xA;     2.0             20           E..V.......&#xA;     2.1             21           E..V.......&#xA;     2.2             22           E..V.......&#xA;     3               30           E..V.......&#xA;     3.0             30           E..V.......&#xA;     3.1             31           E..V.......&#xA;     3.2             32           E..V.......&#xA;     4               40           E..V.......&#xA;     4.0             40           E..V.......&#xA;     4.1             41           E..V.......&#xA;     4.2             42           E..V.......&#xA;     5               50           E..V.......&#xA;     5.0             50           E..V.......&#xA;     5.1             51           E..V.......&#xA;     5.2             52           E..V.......&#xA;     6.0             60           E..V.......&#xA;     6.1             61           E..V.......&#xA;     6.2             62           E..V.......&#xA;  -rc                <int>        E..V....... Override the preset rate-control (from -1 to INT_MAX) (default -1)&#xA;     constqp         0            E..V....... Constant QP mode&#xA;     vbr             1            E..V....... Variable bitrate mode&#xA;     cbr             2            E..V....... Constant bitrate mode&#xA;     vbr_minqp       8388612      E..V....... Variable bitrate mode with MinQP (deprecated)&#xA;     ll_2pass_quality 8388616      E..V....... Multi-pass optimized for image quality (deprecated)&#xA;     ll_2pass_size   8388624      E..V....... Multi-pass optimized for constant frame size (deprecated)&#xA;     vbr_2pass       8388640      E..V....... Multi-pass variable bitrate mode (deprecated)&#xA;     cbr_ld_hq       8388616      E..V....... Constant bitrate low delay high quality mode&#xA;     cbr_hq          8388624      E..V....... Constant bitrate high quality mode&#xA;     vbr_hq          8388640      E..V....... Variable bitrate high quality mode&#xA;  -rc-lookahead      <int>        E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)&#xA;  -surfaces          <int>        E..V....... Number of concurrent surfaces (from 0 to 64) (default 0)&#xA;  -cbr               <boolean>    E..V....... Use cbr encoding mode (default false)&#xA;  -2pass             <boolean>    E..V....... Use 2pass encoding mode (default auto)&#xA;  -gpu               <int>        E..V....... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)&#xA;     any             -1           E..V....... Pick the first device available&#xA;     list            -2           E..V....... List the available devices&#xA;  -delay             <int>        E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)&#xA;  -no-scenecut       <boolean>    E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)&#xA;  -forced-idr        <boolean>    E..V....... If forcing keyframes, force them as IDR frames. (default false)&#xA;  -b_adapt           <boolean>    E..V....... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)&#xA;  -spatial-aq        <boolean>    E..V....... set to 1 to enable Spatial AQ (default false)&#xA;  -spatial_aq        <boolean>    E..V....... set to 1 to enable Spatial AQ (default false)&#xA;  -temporal-aq       <boolean>    E..V....... set to 1 to enable Temporal AQ (default false)&#xA;  -temporal_aq       <boolean>    E..V....... set to 1 to enable Temporal AQ (default false)&#xA;  -zerolatency       <boolean>    E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false)&#xA;  -nonref_p          <boolean>    E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)&#xA;  -strict_gop        <boolean>    E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)&#xA;  -aq-strength       <int>        E..V....... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)&#xA;  -cq                <float>      E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)&#xA;  -aud               <boolean>    E..V....... Use access unit delimiters (default false)&#xA;  -bluray-compat     <boolean>    E..V....... Bluray compatibility workarounds (default false)&#xA;  -init_qpP          <int>        E..V....... Initial QP value for P frame (from -1 to 51) (default -1)&#xA;  -init_qpB          <int>        E..V....... Initial QP value for B frame (from -1 to 51) (default -1)&#xA;  -init_qpI          <int>        E..V....... Initial QP value for I frame (from -1 to 51) (default -1)&#xA;  -qp                <int>        E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1)&#xA;  -weighted_pred     <int>        E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0)&#xA;  -coder             <int>        E..V....... Coder type (from -1 to 2) (default default)&#xA;     default         -1           E..V.......&#xA;     auto            0            E..V.......&#xA;     cabac           1            E..V.......&#xA;     cavlc           2            E..V.......&#xA;     ac              1            E..V.......&#xA;     vlc             2            E..V.......&#xA;  -b_ref_mode        <int>        E..V....... Use B frames as references (from 0 to 2) (default disabled)&#xA;     disabled        0            E..V....... B frames will not be used for reference&#xA;     each            1            E..V....... Each B frame will be used for reference&#xA;     middle          2            E..V....... Only (number of B frames)/2 will be used for reference&#xA;  -a53cc             <boolean>    E..V....... Use A53 Closed Captions (if available) (default true)&#xA;  -dpb_size          <int>        E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0)&#xA;  -multipass         <int>        E..V....... Set the multipass encoding (from 0 to 2) (default disabled)&#xA;     disabled        0            E..V....... Single Pass&#xA;     qres            1            E..V....... Two Pass encoding is enabled where first Pass is quarter resolution&#xA;     fullres         2            E..V....... Two Pass encoding is enabled where first Pass is full resolution&#xA;  -ldkfs             <int>        E..V....... Low delay key frame scale; Specifies the Scene Change frame size increase allowed in case of single frame VBV and CBR (from 0 to 255) (default 0)&#xA;</int></int></int></boolean></int></int></int></int></int></int></int></boolean></boolean></float></int></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></int></int></boolean></boolean></int></int></int></int></int></int></int>

    &#xA;

    If anyone has some idea or needs more information to help me, I would appreciate it.

    &#xA;

  • ffmpeg build fails with gcc error even with gcc installed (C compiler test failed)

    15 mars 2023, par Martin

    I am on macos 11.2.3, trying to build ffmpeg in my terminal. When I run my script sh buildffmpeg.sh which is below :

    &#xA;

    #!/bin/bash&#xA;&#xA;# If you get error `c compiler failed` run `sudo apt install libglfw3-dev libglew-dev`&#xA;# apt-get install build-essential&#xA;# apt-get build-dep ffmpeg&#xA;# when running this on mac, you need to install some libraries such as &#x27;brew install opus&#x27;&#xA;&#xA;set -e&#xA;&#xA;CWD=$(pwd)&#xA;PACKAGES="$CWD/packages"&#xA;WORKSPACE="$CWD/workspace"&#xA;ADDITIONAL_CONFIGURE_OPTIONS=""&#xA;&#xA;&#xA;mkdir -p "$PACKAGES"&#xA;mkdir -p "$WORKSPACE"&#xA;&#xA;FFMPEG_TAG="$1"&#xA;FFMPEG_URL="http://git.ffmpeg.org/gitweb/ffmpeg.git/snapshot/74c4c539538e36d8df02de2484b045010d292f2c.tar.gz"&#xA;&#xA;FFMPEG_ARCHIVE="$PACKAGES/ffmpeg.tar.gz"&#xA;&#xA;if [ ! -f "$FFMPEG_ARCHIVE" ]; then&#xA;    echo "Downloading tag ${FFMPEG_TAG}..."&#xA;    curl -L -o "$FFMPEG_ARCHIVE" "$FFMPEG_URL"&#xA;fi&#xA;&#xA;EXTRACTED_DIR="$PACKAGES/extracted"&#xA;&#xA;mkdir -p "$EXTRACTED_DIR"&#xA;&#xA;echo "Extracting..."&#xA;tar -xf "$FFMPEG_ARCHIVE" --strip-components=1 -C "$EXTRACTED_DIR"&#xA;&#xA;cd "$EXTRACTED_DIR"&#xA;&#xA;echo "Building..."&#xA;&#xA;# Min electron supported version&#xA;MACOS_MIN="10.10"&#xA;&#xA;./configure $ADDITIONAL_CONFIGURE_OPTIONS \&#xA;    --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \&#xA;    --prefix=${WORKSPACE} \&#xA;    --pkg-config-flags="--static" \&#xA;    --extra-libs=-static \&#xA;    --extra-cflags=--static \&#xA;    --enable-cross-compile \&#xA;    --extra-cflags="-I$WORKSPACE/include -mmacosx-version-min=${MACOS_MIN}" \&#xA;    --extra-ldflags="-L$WORKSPACE/lib -mmacosx-version-min=${MACOS_MIN} -L/usr/local/opt/lame/lib -Wl,-rpath,/usr/local/opt/lame/lib" \&#xA;    --extra-libs="-lpthread -lm" \&#xA;    --enable-static \&#xA;    --disable-securetransport \&#xA;    --disable-debug \&#xA;    --disable-shared \&#xA;    --disable-ffplay \&#xA;    --disable-lzma \&#xA;    --disable-doc \&#xA;    --enable-version3 \&#xA;    --enable-pthreads \&#xA;    --enable-runtime-cpudetect \&#xA;    --enable-avfilter \&#xA;    --enable-filters \&#xA;    --disable-libxcb \&#xA;    --enable-gpl \&#xA;    --disable-libass \&#xA;    --enable-libmp3lame \&#xA;    --enable-libx264 \&#xA;    --enable-libopus&#xA;&#xA;make -j 4&#xA;make install&#xA;&#xA;otool -L "$WORKSPACE/bin/ffmpeg"&#xA;otool -L "$WORKSPACE/bin/ffprobe"&#xA;&#xA;echo "Building done. The binaries can be found here: $WORKSPACE/bin/ffmpeg $WORKSPACE/bin/ffprobe"&#xA;&#xA;mkdir ffmpeg-mac/ &#xA;cp -r "$WORKSPACE/bin/" "$CWD/ffmpeg-mac/"&#xA;&#xA;rm -rf "$PACKAGES"&#xA;rm -rf "$WORKSPACE"&#xA;&#xA;exit 0&#xA;&#xA;

    &#xA;

    It fails with this error :

    &#xA;

    > sh buildffmpeg.sh&#xA;&#xA;Extracting...&#xA;Building...&#xA;gcc is unable to create an executable file.&#xA;C compiler test failed.&#xA;&#xA;If you think configure made a mistake, make sure you are using the latest&#xA;version from Git.  If the latest version fails, report the problem to the&#xA;ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.&#xA;Include the log file "ffbuild/config.log" produced by configure as this will help&#xA;solve the problem.&#xA;

    &#xA;

    I have been trying to solve this error, and have installed gcc with brew, if i run gcc -v I can see my installed gcc version :

    &#xA;

    $ gcc -v&#xA;Using built-in specs.&#xA;COLLECT_GCC=gcc&#xA;COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/12.2.0/bin/../libexec/gcc/x86_64-apple-darwin20/12/lto-wrapper&#xA;Target: x86_64-apple-darwin20&#xA;Configured with: ../configure --prefix=/usr/local/opt/gcc --libdir=/usr/local/opt/gcc/lib/gcc/current --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c&#x2B;&#x2B;,objc,obj-c&#x2B;&#x2B;,fortran --program-suffix=-12 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-zstd=/usr/local/opt/zstd --with-pkgversion=&#x27;Homebrew GCC 12.2.0&#x27; --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --with-system-zlib --build=x86_64-apple-darwin20 --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk&#xA;Thread model: posix&#xA;Supported LTO compression algorithms: zlib zstd&#xA;gcc version 12.2.0 (Homebrew GCC 12.2.0) &#xA;

    &#xA;

    So if gcc is installed correctly (i think) why is it failing with a gcc error when I build ffmpeg ?

    &#xA;

    ffbuild/config.log :

    &#xA;

    ...&#xA;mktemp -u XXXXXX&#xA;9v9a2o&#xA;test_ld cc&#xA;test_cc&#xA;BEGIN /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;    1   int main(void){ return 0; }&#xA;END /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;gcc --static -I/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/include -mmacosx-version-min=10.10 -c -o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;gcc -L/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/lib -mmacosx-version-min=10.10 -L/usr/local/opt/lame/lib -Wl,-rpath,/usr/local/opt/lame/lib -o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.o -lpthread -lm -static&#xA;ld: warning: directory not found for option &#x27;-L/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/lib&#x27;&#xA;ld: library not found for -lcrt0.o&#xA;collect2: error: ld returned 1 exit status&#xA;C compiler test failed.&#xA;&#xA;

    &#xA;

    gcc test :

    &#xA;

    apples-MacBook:gcctest apple$ export CC=$(which gcc)&#xA;apples-MacBook:gcctest apple$ export CXX=$(which g&#x2B;&#x2B;)&#xA;apples-MacBook:gcctest apple$ ls&#xA;minimal.c&#xA;apples-MacBook:gcctest apple$ gcc -static -Wall -o minimal minimal.c -v&#xA;Apple LLVM version 10.0.0 (clang-1000.10.44.4)&#xA;Target: x86_64-apple-darwin17.0.0&#xA;Thread model: posix&#xA;InstalledDir: /Library/Developer/CommandLineTools/usr/bin&#xA; "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.13.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name minimal.c -static-define -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 409.12 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0 -Wall -fdebug-compilation-dir /Users/apple/Documents/projects/gcctest -ferror-limit 19 -fmessage-length 157 -stack-protector 1 -fblocks -fencode-extended-block-signature -fobjc-runtime=macosx-10.13.0 -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/7t/d2z0gq194s92vn5xz923gq5h0000gn/T/minimal-8cfbfc.o -x c minimal.c&#xA;clang -cc1 version 10.0.0 (clang-1000.10.44.4) default target x86_64-apple-darwin17.0.0&#xA;#include "..." search starts here:&#xA;#include &lt;...> search starts here:&#xA; /usr/local/include&#xA; /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include&#xA; /Library/Developer/CommandLineTools/usr/include&#xA; /usr/include&#xA; /System/Library/Frameworks (framework directory)&#xA; /Library/Frameworks (framework directory)&#xA;End of search list.&#xA; "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -no_deduplicate -static -arch x86_64 -macosx_version_min 10.13.0 -o minimal -lcrt0.o /var/folders/7t/d2z0gq194s92vn5xz923gq5h0000gn/T/minimal-8cfbfc.o&#xA;ld: library not found for -lcrt0.o&#xA;clang: error: linker command failed with exit code 1 (use -v to see invocation)&#xA;

    &#xA;