Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

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

Autres articles (90)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

Sur d’autres sites (9965)

  • record and play file using wrapper ffmpeg

    3 septembre 2014, par user1541069

    I am using C# wrapper for ffmpeg from ffmpeg
    I want record rtsp stream and play it but I can not decoder frame from file

    using this code I write file test.avi

    unsafe
           {
               AVFormatContext* context = FFmpegInvoke.avformat_alloc_context();
               int video_stream_index=0;

               FFmpegInvoke.av_register_all();
               FFmpegInvoke.avcodec_register_all();
               FFmpegInvoke.avformat_network_init();

               //open rtsp
               if (FFmpegInvoke.avformat_open_input(&context, "rtsp://admin:admin@192.168.0.71:554", null, null) != 0)
               {
                   return ;
               }

               if (FFmpegInvoke.avformat_find_stream_info(context, null) < 0)
               {
                   return ;
               }

               //search video stream
               for (int i = 0; i < context->nb_streams; i++)
               {
                   if (context->streams[i]->codec->codec_type == AVMediaType.AVMEDIA_TYPE_VIDEO)
                       video_stream_index = i;
               }

               AVPacket packet;
               FFmpegInvoke.av_init_packet(&packet);

               //open output file
               AVOutputFormat* fmt = FFmpegInvoke.av_guess_format("h264", null, null);
               AVFormatContext* oc = FFmpegInvoke.avformat_alloc_context();
               oc->oformat = fmt;
               FFmpegInvoke.avio_open2(&oc->pb, "test.mkv", FFmpegInvoke.AVIO_FLAG_WRITE, null, null);

               AVStream* stream = null;
               int cnt = 0;
               //start reading packets from stream and write them to file

            ///   FFmpegInvoke.av_read_play(context);//play RTSP
               while (FFmpegInvoke.av_read_frame(context, &packet) >= 0 && cnt < 1000)
               {//read 100 frames


                   if (packet.stream_index == video_stream_index)
                   {//packet is video              
                       if (stream == null)
                       {//create stream in file

                           stream = FFmpegInvoke.avformat_new_stream(oc, context->streams[video_stream_index]->codec->codec);
                           FFmpegInvoke.avcodec_copy_context(stream->codec, context->streams[video_stream_index]->codec);
                           stream->sample_aspect_ratio = context->streams[video_stream_index]->codec->sample_aspect_ratio;
                           FFmpegInvoke.avformat_write_header(oc, null);
                       }
                       packet.stream_index = stream->id;
                       var p1 = new FileInfo("test.mkv").Length;
                       FFmpegInvoke.av_write_frame(oc, &packet);
                       cnt++;
                   }
                   FFmpegInvoke.av_free_packet(&packet);
                   FFmpegInvoke.av_init_packet(&packet);
               }
               FFmpegInvoke.av_read_pause(context);
               FFmpegInvoke.av_write_trailer(oc);
               FFmpegInvoke.avio_close(oc->pb);
               FFmpegInvoke.avformat_free_context(oc);
           }

    and using this code I want to play me file

    unsafe{


               string url = "test.mkv";

               FFmpegInvoke.av_register_all();
               FFmpegInvoke.avcodec_register_all();
               FFmpegInvoke.avformat_network_init();


               AVFormatContext* pFormatContext = FFmpegInvoke.avformat_alloc_context();
               if (FFmpegInvoke.avformat_open_input(&pFormatContext, url, null, null) != 0)
                   throw new Exception("Could not open file");

               if (FFmpegInvoke.avformat_find_stream_info(pFormatContext, null) != 0)
                   throw new Exception("Could not find stream info");
               AVStream* pStream = null;
               for (int i = 0; i < pFormatContext->nb_streams; i++)
               {
                   if (pFormatContext->streams[i]->codec->codec_type == AVMediaType.AVMEDIA_TYPE_VIDEO)
                   {
                       pStream = pFormatContext->streams[i];
                       break;
                   }
               }
               var packet = new AVPacket();
               AVPacket* pPacket = &packet;
               FFmpegInvoke.av_init_packet(pPacket);



               AVCodecContext codecContext = *(pStream->codec);
               int width = codecContext.width;
               int height = codecContext.height;
               AVPixelFormat sourcePixFmt = codecContext.pix_fmt;
               AVCodecID codecId = codecContext.codec_id;
               var convertToPixFmt = AVPixelFormat.PIX_FMT_BGR24;
               SwsContext* pConvertContext = FFmpegInvoke.sws_getContext(width, height, sourcePixFmt,
                                                                          width, height, convertToPixFmt,
                                                                          FFmpegInvoke.SWS_FAST_BILINEAR, null, null, null);
               if (pConvertContext == null)
                   throw new Exception("Could not initialize the conversion context");

               var pConvertedFrame = (AVPicture*)FFmpegInvoke.avcodec_alloc_frame();
               int convertedFrameBufferSize = FFmpegInvoke.avpicture_get_size(convertToPixFmt, width, height);
               var pConvertedFrameBuffer = (byte*)FFmpegInvoke.av_malloc((uint)convertedFrameBufferSize);
               FFmpegInvoke.avpicture_fill(pConvertedFrame, pConvertedFrameBuffer, convertToPixFmt, width, height);

               AVCodec* pCodec = FFmpegInvoke.avcodec_find_decoder(codecId);
               if (pCodec == null)
                   throw new Exception("Unsupported codec");

               // Reusing codec context from stream info,
               // as an alternative way it could look like this: (but it works not for all kind of codecs)
               // AVCodecContext* pCodecContext = FFmpegInvoke.avcodec_alloc_context3(pCodec);
               AVCodecContext* pCodecContext = &codecContext;

               if ((pCodec->capabilities & FFmpegInvoke.CODEC_CAP_TRUNCATED) == FFmpegInvoke.CODEC_CAP_TRUNCATED)
                   pCodecContext->flags |= FFmpegInvoke.CODEC_FLAG_TRUNCATED;

               AVFrame* pDecodedFrame = FFmpegInvoke.avcodec_alloc_frame();

               if (FFmpegInvoke.av_read_frame(pFormatContext, pPacket) < 0)
                   throw new System.IO.EndOfStreamException();
               int gotPicture = 0;
               int size = FFmpegInvoke.avcodec_decode_video2(pCodecContext, pDecodedFrame, &gotPicture, pPacket);
               if (size < 0)
                   throw new Exception(string.Format("Error while decoding frame "));

               if (gotPicture == 1)
               {

               }

    size =-22.Why ? what is wrong ?How play my file using ffmpeg ?

  • Anomalie #3325 : (array) n’est pas suffisant pour convertir l’objet récupéré par l’itérateur YQL

    29 octobre 2014, par Sylvain Lesage

    L’URL est mal écrite, c’est : http://core.spip.org/projects/spip/repository/entry/spip/ecrire/iterateur/data.php#L563.

    J’ai pas le dépôt SVN sous la main, mais le patch en gros pourrait être remplacer à la ligne 547

    /**
     * yql -> tableau
     * @throws Exception
     * @param  string $u
     * @return array|bool
     */
    function inc_yql_to_array_dist($u) 
        define(’_YQL_ENDPOINT’, ’http://query.yahooapis.com/v1/public/yql?&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=’) ;
        $v = recuperer_url($url = _YQL_ENDPOINT.urlencode($u).’&format=json’) ;
        if (!$v[’page’]
          OR !$w = json_decode($v[’page’],true)) 
            throw new Exception(’YQL : r&#233 ;ponse vide ou mal form&#233 ;e’) ;
        
        if (isset($w[’error’]))
            throw new Exception($w[’error’][’description’]) ;
        
        return (array) $w ;
    
    

    par

    /**
     *
     * Convert an object to an array
     *
     * @param    object  $object The object to convert
     * @return   array
     *
     */
    function inc_object_to_array( $object ) 
        if( !is_object( $object ) && !is_array( $object ) ) 
            return $object ;
        
        if( is_object( $object ) ) 
            $object = get_object_vars( $object ) ;
        
        return array_map( ’inc_object_to_array’, $object ) ;
    
    

    /**
    * yql -> tableau
    * @throws Exception
    * @param string $u
    * @return array|bool
    */
    function inc_yql_to_array($u)
    define(’_YQL_ENDPOINT’, ’http://query.yahooapis.com/v1/public/yql?&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=’) ;
    $v = recuperer_page($url = _YQL_ENDPOINT.urlencode($u).’&format=json’) ;
    $w = json_decode($v) ;
    if (!$w)
    throw new Exception(’YQL : r&#233 ;ponse vide ou mal form&#233 ;e’) ;
    return false ;

    return inc_object_to_array($w) ;

  • Get image from direct show device [duplicate]

    13 août 2014, par user2663781

    This question already has an answer here :

    I want to get image from direct show device in Java but I can’t find a good solution for it.
    My device is screen-capture-recorder which is easy to get with ffmpeg, so my first idea was to use Xuggler.
    I tried this code :

    String driverName = "dshow";
    String deviceName= "screen-capture-recorder";
    // Let's make sure that we can actually convert video pixel formats.
    if (!IVideoResampler.isSupported(IVideoResampler.Feature.FEATURE_COLORSPACECONVERSION))
             throw new RuntimeException("you must install the GPL version of Xuggler (with IVideoResampler support) for this demo to work");
    // Create a Xuggler container object
    IContainer container = IContainer.make();
    // Tell Xuggler about the device format
    IContainerFormat format = IContainerFormat.make();
    if (format.setInputFormat(driverName) < 0)
             throw new IllegalArgumentException("couldn't open webcam device: " + driverName);
    // devices, unlike most files, need to have parameters set in order
    // for Xuggler to know how to configure them, for a webcam, these
    // parameters make sense
    IMetaData params = IMetaData.make();
    params.setValue("framerate", "30/1");
    params.setValue("video_size", "320x240");

    // Open up the container
    int retval = container.open(deviceName, IContainer.Type.READ, format,
    false, true, params, null);

    But when I try to open the device (by his device name) it is not working :
    0 [main] ERROR org.ffmpeg - [dshow @ 05168820] Malformed dshow input string.
    0 [main] DEBUG com.xuggle.xuggler - Could not open output url : screen-capture-recorder (../../../../../../../csrc/com/xuggle/xuggler/Container.cpp:436)
    Exception in thread "main" java.lang.IllegalArgumentException : could not open file : screen-capture-recorder ; Error : Input/output error
    at DisplayWebcamVideo.main(DisplayWebcamVideo.java:99)
    Java Result : 1

    After searching a bit I found DSJ, but it is for non-commercial use only and we need a registry version, so impossible to use for me.

    I also found LTI-CIVIL but it could not detect the "screen-capture-recorder".
    I tried FMJ and JMF but it does not find the device too.

    I tried VLCj but the container with the video must be open if I want to get image and it is not what I need.

    I tried webcam-recorder (github.sarxos.webcam), it detects the device but i got this error when I try to open it :

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x5faf910d, pid=2552, tid=9780
    #

    I am a bit stuck now, I don’t know how to solve this problem someone can help me ?
    Or give me a simple DLL that I can use through JNA to get an image from direct show device...