Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

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

Autres articles (18)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Configuration spécifique d’Apache

    4 février 2011, par

    Modules spécifiques
    Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
    Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
    Création d’un (...)

Sur d’autres sites (4138)

  • How to enable multi-threading in JavaCV FfmpegFrameRecorder ?

    7 août 2024, par Zbynek Vyskovsky - kvr000

    I'm re-coding a video using FfmpegFrameGrabber and FfmpegFrameRecorder. It's using H264 codec and I try to enable multi-threading, however, it still runs in single thread only (according to top). Here's the relevant part of code :

    


            recorder.setFormat("mp4");
        recorder.setOption("loglevel", "debug");
        recorder.setOption("threads", "auto");
        recorder.setOption("c", "copy");
        if (grabber.hasVideo()) {
            recorder.setVideoMetadata(grabber.getVideoMetadata());
            recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
            recorder.setVideoCodecName("h264");

            recorder.setVideoBitrate(grabber.getVideoBitrate() * options.bitrateRatio / 100);
            // those do not work:
            recorder.setOption("threads", "auto");
            recorder.setVideoOption("threads", "auto");
            //recorder.setVideoOption("preset", "ultrafast");
            //recorder.setVideoOption("tune", "zerolatency");
            //recorder.setVideoOption("crf", "23");
        }
        recorder.start();
        while ((frame = grabber.grab()) != null) {
            if (frame.type == Frame.Type.VIDEO) {
                BufferedImage bufferedImage = converter.getBufferedImage(frame);
                // draw some stuff on bufferedImage...
                Frame modifiedFrame = frame.clone();
                Java2DFrameConverter.copy(bufferedImage, modifiedFrame);

                // Record the modified frame
                recorder.record(modifiedFrame);
            }
            else {
                recorder.record(frame);
            }
        }


    


    Actually, none of the options seem to be passed to encoder. I'm using JavaCv 1.5.10, Ffmpeg 6.1.1

    


  • Sites qui peuvent inspirer

    26 septembre 2013

    Pour des nouveaux thèmes, voir pour faire évoluer le squelette, il est toujours intéressant de regarder les sites qui font pareil. Ici, deux liens vers des catalogues OpenData

    Liens de severo :

    Liens de kent1 :

  • Memory leaks when opening RTMP stream with wrong url

    3 novembre 2015, par n00bie

    I’m using libav for streaming to YouTube through RTMP. I have function openRtmpStream() for opening RTMP stream. It works well. But recently i noticed the situation, when RTMP url is wrong (or server is down). In this situation my code is trying to reconnect, and calls this function about 15 times per second. With htop i can see about 20 MB per second memory leak in this situation.

    Maybe my code for closing context and streams is wrong ? Or any another idea what I’m doing wrong ? Thanks in advance !

    Here’s my code :

    bool openRtmpStream( const std::string& address )
    {
       if( ! m_httpContext ) {
           m_httpContext = avformat_alloc_context( );

           m_httpContext->oformat = av_guess_format( "flv", address.c_str( ), nullptr );
           if( m_httpContext->oformat ) {
               strcpy( m_httpContext->filename, address.c_str( ) );

               auto codecID = AV_CODEC_ID_H264;

               auto codec = avcodec_find_encoder( codecID );

               if( codec ) {
                   m_httpVideoStream = avformat_new_stream( m_httpContext, codec );

                   // ... here's initalization of m_httpVideoStream->codec ...

                   int res = avcodec_open2( codecContext, codec, nullptr );
                   if( res >= 0 ) {
                       auto codecID = AV_CODEC_ID_MP3;
                       auto codec = avcodec_find_encoder( codecID );
                       if( codec ) {
                           m_httpAudioStream = avformat_new_stream( m_httpContext, codec );

                           // ... here's initalization of m_httpAudioStream->codec ...

                           res = avcodec_open2( codecContext, codec, nullptr );
                           if( res >= 0 ) {
                               m_httpStreamWriteStartTime = boost::chrono::high_resolution_clock::now( );
                               if( avio_open2( &m_httpContext->pb, m_httpContext->filename, AVIO_FLAG_WRITE, m_AVIOInterruptCB.get( ), nullptr ) >= 0 ) {
                                   if( avformat_write_header( m_httpContext, nullptr ) >= 0 ) {
                                       return true; // success
                                   }
                               }
                               avcodec_close( m_httpAudioStream->codec );
                           }
                       }
                       avcodec_close( m_httpVideoStream->codec );
                   }
               }
           }

           // failed to open stream, close context and streams

           avio_close( m_httpContext->pb );
           avformat_free_context( m_httpContext );
           m_httpContext = nullptr;
           m_httpVideoStream = nullptr;
           m_httpAudioStream = nullptr;
       }
       return false;
    }