Recherche avancée

Médias (1)

Mot : - Tags -/ogg

Autres articles (88)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

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

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

Sur d’autres sites (9802)

  • Why am I getting an error for stream #0.1 ?

    30 juillet 2014, par Rob Avery IV

    I’m converting videos using ffmpeg-php. Here is my code :

       // Set our source file
       $srcFile = $uploadFilm.".".$film_type;
       $destFile = $uploadFilm;
       $ffmpegPath = "ffmpeg";

       // Create our FFMPEG-PHP class
       $ffmpegObj = new ffmpeg_movie($srcFile);

       // Save our needed variables
       $srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
       $srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
       $srcFPS = $ffmpegObj->getFrameRate();
       if($ffmpegObj->hasAudio()){
           $srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
           $srcAR = $ffmpegObj->getAudioSampleRate();
       }else{
           $srcAB = 0;
           $srcAR = 0;
       }

       // Call our convert using exec()
       //$command = $ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . "k -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile;
       //$command = "whoami";
       $command = $ffmpegPath . ' -i ' .'"'. $srcFile . '" -ar ' . $srcAR . ' -ab ' . $srcAB . 'k -f flv -s ' . $srcWidth . 'x' . $srcHeight . ' "' . $destFile . '" 2>&1';
       $outputCommand = array();
       $status = 1;
       exec($command, $outputCommand, $status);

    The output gives out this error at the end :

    Error while opening encoder for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height

    I know that both $srcAB and $srcAR have values because this is the command this being ran :

    ffmpeg -i source -ar 48000 -ab 160k -f flv -s 1920x1080 destination

    Of course, after the command is executed, the "convert video" has a size 0, which means it didn’t convert it.

    What am I missing here ?

    EDIT : Here is my full output :

    FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
     built on Jul 18 2014 08:41:45 with gcc 4.4.7 20120313 (Red Hat 4.4.7-3)
     configuration: --enable-libmp3lame --disable-mmx --enable-shared
     libavutil     50.36. 0 / 50.36. 0
     libavcore      0.16. 1 /  0.16. 1
     libavcodec    52.108. 0 / 52.108. 0
     libavformat   52.93. 0 / 52.93. 0
     libavdevice   52. 2. 3 / 52. 2. 3
     libavfilter    1.74. 0 /  1.74. 0
     libswscale     0.12. 0 /  0.12. 0
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/file/bbb_sunflower_1080p_30fps_normal.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 1
       compatible_brands: isomavc1
       creation_time   : 2013-12-16 17:44:39
       title           : Big Buck Bunny, Sunflower version
       artist          : Blender Foundation 2008, Janus Bager Kristensen 2013
       comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
       genre           : Animation
       composer        : Sacha Goedegebure
     Duration: 00:10:34.60, start: 0.000000, bitrate: 3481 kb/s
       Stream #0.0(und): Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 2998 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc
       Metadata:
         creation_time   : 2013-12-16 17:44:39
       Stream #0.1(und): Audio: mp3, 48000 Hz, 2 channels, s16, 160 kb/s
       Metadata:
         creation_time   : 2013-12-16 17:44:42
       Stream #0.2(und): Audio: ac3, 48000 Hz, 6 channels, s16, 320 kb/s
       Metadata:
         creation_time   : 2013-12-16 17:44:42
    [buffer @ 0x2231e20] w:1920 h:1080 pixfmt:yuv420p
    Output #0, flv, to '/path/to/file/bbb_sunflower_1080p_30fps_normal.flv':
       Stream #0.0(und): Video: flv, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 30 tbc
       Metadata:
         creation_time   : 2013-12-16 17:44:39
       Stream #0.1(und): Audio: libmp3lame, 48000 Hz, 6 channels, s16, 160 kb/s
       Metadata:
         creation_time   : 2013-12-16 17:44:42
    Stream mapping:
     Stream #0.0 -> #0.0
     Stream #0.1 -> #0.1
    Error while opening encoder for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height
  • 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);

    }

  • Is it possible to mimic the codec settings of a given media file with ffmpeg ?

    5 août 2014, par Konstantin

    I would like to concat two mkv video file, one 1 sec (32 frames), and one 20 min, but the shorter has different encoding. I don’t want to encode both, but the shorter, and I would like to take the codec settings from the longer stream, and then concat them with command similar to :

    ffmpeg -f concat -i list.txt -c copy output.mkv

    Where list.txt contains :

    file properly-encoded-shorter-stream.mkv
    file longer-stream.mkv

    Audio streams are not problematic, both are uncompressed PCM wav.
    Details of my media files (3.avi was produced with avisynth / wine / virtualdub, the other mkv files are taken from a media file)

    ffmpeg -i 3.avi -i 5.mkv
    ffmpeg version 2.3.1 Copyright (c) 2000-2014 the FFmpeg developers
     built on Jul 31 2014 14:53:16 with gcc 4.9.1 (GCC)
     configuration: --prefix=/usr --disable-debug --disable-static --enable-avisynth --enable-avresample --enable-decoder=atrac3 --enable-decoder=atrac3p --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
     libavutil      52. 92.100 / 52. 92.100
     libavcodec     55. 69.100 / 55. 69.100
     libavformat    55. 48.100 / 55. 48.100
     libavdevice    55. 13.102 / 55. 13.102
     libavfilter     4. 11.100 /  4. 11.100
     libavresample   1.  3.  0 /  1.  3.  0
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 19.100 /  0. 19.100
     libpostproc    52.  3.100 / 52.  3.100
    [matroska,webm @ 0x84e3100] Unknown entry 0x1A45DFA3
    Guessed Channel Layout for  Input Stream #0.1 : stereo
    Input #0, matroska,webm, from '3.avi':
     Metadata:
       encoder         : libebml-0.7.5 & libmatroska-0.7.7
       creation_time   : 2014-08-04 23:08:59
     Duration: 00:00:01.03, start: 0.000000, bitrate: 153515 kb/s
       Stream #0:0(eng): Video: rawvideo, bgr24, 528x400, SAR 1:1 DAR 33:25, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
       Stream #0:1(eng): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Guessed Channel Layout for  Input Stream #1.1 : stereo
    Input #1, matroska,webm, from '5.mkv':
     Metadata:
       encoder         : libebml-0.7.5 & libmatroska-0.7.7
       creation_time   : 2014-08-04 22:45:57
     Duration: 00:06:18.45, start: 0.000000, bitrate: 3219 kb/s
       Stream #1:0(eng): Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 528x400 [SAR 1:1 DAR 33:25], 29.97 fps, 29.97 tbr, 1k tbn, 29.98 tbc (default)
       Stream #1:1(eng): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s (default)