Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (84)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (6929)

  • How to merge two audio files into one stereo file in FFmpeg?

    12 août 2021, par TW520

    input :

    


    


    Two audio file, It may be stereo or mono.

    


    


    output :

    


    

      

    • A stereo file, and the stereo FL uses one file all channels, and FR uses other file all channels.
    • 


    • The total duration is based on the longest file.
    • 


    • I hope it can be achieved through FFmpeg.
    • 


    


    


    There are four case :

    


      

    • mono + mono -> stereo
    • 


    • mono + stereo -> stereo
    • 


    • stereo + mono -> stereo
    • 


    • stereo + stereo -> stereo
    • 


    


    I hope someone can help me, I am a newbie to FFmpeg.

    


  • ffmpeg live stream latency

    22 août 2014, par Alex Fu

    I’m currently working on live streaming video from device A (source) to device B (destination) directly via local WiFi network.

    I’ve built FFMPEG to work on the Android platform and I have been able to stream video from A -> B successfully at the expense of latency (takes about 20 seconds for a movement or change to appear on screen ; as if the video was 20 seconds behind actual events).

    Initial start up is around 4 seconds. I’ve been able to trim that initial start up time down by lowering probesize and max_analyze_duration but the 20 second delay is still there.

    I’ve sprinkled some timing events around the code to try an figure out where the most time is being spent...

    • naInit : 0.24575 sec
    • naSetup : 0.043705 sec

    The first video frame isn’t obtained until 0.035342 sec after the decodeAndRender function is called. Subsequent decoding times can be illustrated here : enter image description here http://jsfiddle.net/uff0jdf7/1/ (interactive graph)

    From all the timing data i’ve recorded, nothing really jumps out at me unless I’m doing the timing wrong. Some have suggested that I am buffering too much data, however, as far as I can tell, I’m only buffering an image at a time. Is this too much ?

    Also, the source video that’s coming in is in the format of P264 ; it’s a custom implementation of H264 apparently.

    jint naSetup(JNIEnv *pEnv, jobject pObj, int pWidth, int pHeight) {
     width = pWidth;
     height = pHeight;

     //create a bitmap as the buffer for frameRGBA
     bitmap = createBitmap(pEnv, pWidth, pHeight);
     if (AndroidBitmap_lockPixels(pEnv, bitmap, &pixel_buffer) < 0) {
       LOGE("Could not lock bitmap pixels");
       return -1;
     }

     //get the scaling context
     sws_ctx = sws_getContext(codecCtx->width, codecCtx->height, codecCtx->pix_fmt,
         pWidth, pHeight, AV_PIX_FMT_RGBA, SWS_BILINEAR, NULL, NULL, NULL);

     // Assign appropriate parts of bitmap to image planes in pFrameRGBA
     // Note that pFrameRGBA is an AVFrame, but AVFrame is a superset
     // of AVPicture
     av_image_fill_arrays(frameRGBA->data, frameRGBA->linesize, pixel_buffer, AV_PIX_FMT_RGBA, pWidth, pHeight, 1);
     return 0;
    }

    void decodeAndRender(JNIEnv *pEnv) {
     ANativeWindow_Buffer windowBuffer;
     AVPacket packet;
     AVPacket outputPacket;
     int frame_count = 0;
     int got_frame;

     while (!stop && av_read_frame(formatCtx, &packet) >= 0) {
       // Is this a packet from the video stream?
       if (packet.stream_index == video_stream_index) {

         // Decode video frame
         avcodec_decode_video2(codecCtx, decodedFrame, &got_frame, &packet);

         // Did we get a video frame?
         if (got_frame) {
           // Convert the image from its native format to RGBA
           sws_scale(sws_ctx, (uint8_t const * const *) decodedFrame->data,
               decodedFrame->linesize, 0, codecCtx->height, frameRGBA->data,
               frameRGBA->linesize);

           // lock the window buffer
           if (ANativeWindow_lock(window, &windowBuffer, NULL) < 0) {
             LOGE("Cannot lock window");
           } else {
             // draw the frame on buffer
             int h;
             for (h = 0; h < height; h++) {
               memcpy(windowBuffer.bits + h * windowBuffer.stride * 4,
                      pixel_buffer + h * frameRGBA->linesize[0],
                      width * 4);
             }
             // unlock the window buffer and post it to display
             ANativeWindow_unlockAndPost(window);

             // count number of frames
             ++frame_count;
           }
         }
       }

       // Free the packet that was allocated by av_read_frame
       av_free_packet(&packet);
     }

     LOGI("Total # of frames decoded and rendered %d", frame_count);
    }
  • use ffmpeg to cut video,the video will have extra duration

    17 juin 2021, par Venus
    ffmpeg -ss 2 -i input.mp4 -c copy -t 5 out.mp4


    


    after I executed the ffmpeg command.
    
the out.mp4 total have 7 seconds,it starts from the second frame of input.mp4 to the seventh frame of input.mp4.
    
It only has 5 effective seconds of the input.mp4, the last 2 seconds of input.mp4 is empty.