Recherche avancée

Médias (0)

Mot : - Tags -/gis

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

Autres articles (57)

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (7668)

  • OpenCV and GoPro - empty frames in VideoCapture stream

    19 mai 2014, par Novatar

    I have a GoPro Hero 3+ (Black) which is connected to a video capture card (AverMedia Game Broadcaster HD). I simply want to get the video stream in OpenCV. With a Logitech Webcam there are no problems. The used code is below.

    VideoCapture cap;
    cap.open(0);

    waitKey(300);

    //cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
    //cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);

    if (cap.isOpened()){
       cout << "Cam identified" << endl;
    }

    namedWindow("dst", 1);

    while (1){

    Mat frame;

    if (!cap.read(frame)) {
       std::cout << "Unable to read frame from video stream" << std::endl;
       continue;
    }

    imshow("dst", frame);

    [...]

    }

    With the GoPro the following happens : OpenCV is able to open the VideoCapture ("Cam identified") but can’t read any frames (just a gray screen and the output : "Unable to read frame from video stream"). I also checked this with frame.empty() ;.

    I know that the video capture card works correct because Unity opens a WebCamTexture with the GoPro stream without any issues. I read about codec problems in OpenCv and so I already tried to compile OpenCV with FFMPEG support. Now the recorded MP4-Videos of the GoPro can be displayed but the stream still doesn’t work.

    I use OpenCV 2.48, Windows 7 and Visual Studio 2013.


    EDIT : Here is the code of libVLC solution :

    struct ctx
    {
    uint8_t* pixeldata;
    std::mutex imagemutex;
    };

    static void display(void *data, void *id);
    static void unlock(void *data, void *id, void *const *p_pixels);
    static void *lock(void *data, void **p_pixels);

    struct ctx ctx;

    libvlc_instance_t *inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;

    int main(int argc, char* argv[])
    {
       ctx.pixeldata = new uint8_t[1280 * 720 * 3];

       char const *vlc_argv[] =
       {
           "-vvv",
           "--no-audio", /* skip any audio track */
           "--no-xlib", /* tell VLC to not use Xlib */
       };

       int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv);
       inst = libvlc_new(vlc_argc, vlc_argv);

       const char *options[] =
       {
           ":dshow-vdev=AVerMedia HD Capture",
           ":dshow-adev=none",
           //":dshow-size=1280x720",
           ":dshow-fps=24",
           ":dshow-chroma=YUY2",
           ":dshow-video-input=1",
           ":dshow-video-output=1",
           ":dshow-aspect-ratio=16\:9",
           ":live-caching=80",
           NULL
       };

       m = libvlc_media_new_location(inst, "dshow://");
       for (const char **opt = options; *opt; opt++)
           libvlc_media_add_option(m, *opt);

       mp = libvlc_media_player_new_from_media(m);
       libvlc_media_release(m);
       libvlc_video_set_callbacks(mp, lock, unlock, display, &ctx);
       libvlc_video_set_format(mp, "RV24", 1280, 720, 1280 * 3);
       libvlc_media_player_play(mp);

       namedWindow("all", 1);

       Mat frame(720, 1280, CV_8UC3);

       while (1){

           ctx.imagemutex.lock();
           memcpy(gesamt.data, ctx.pixeldata, 1280 * 720 * sizeof(uint8_t) * 3);
           ctx.imagemutex.unlock();

           imshow("all", gesamt);

           if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
           {
               cout << "esc key is pressed by user" << endl;
               break;
           }

       }

       libvlc_media_player_stop(mp);
       libvlc_media_player_release(mp);
       libvlc_release(inst);
       delete[] ctx.pixeldata;

       return 0;
    }

    void display(void *data, void *id){
       (void)data;
       assert(id == NULL);
    }

    void unlock(void *data, void *id, void *const *p_pixels){
       struct ctx *ctx = (struct ctx*)data;
       ctx->imagemutex.unlock();
       assert(id == NULL);
    }

    void *lock(void *data, void **p_pixels){
       struct ctx *ctx = (struct ctx*)data;
       ctx->imagemutex.lock();
       *p_pixels = ctx->pixeldata;
       return NULL;
    }
  • Overthinking My Search Engine Problem

    31 décembre 2013, par Multimedia Mike — General

    I wrote a search engine for my Game Music Appreciation website, because the site would have been significantly less valuable without it (and I would eventually realize that the search feature is probably the most valuable part of this endeavor). I came up with a search solution that was a bit sketchy, but worked… until it didn’t. I thought of a fix but still searched for more robust and modern solutions (where ‘modern’ is defined as something that doesn’t require compiling a C program into a static CGI script and hoping that it works on a server I can’t debug on).

    Finally, I realized that I was overthinking the problem– did you know that a bunch of relational database management systems (RDBMSs) support full text search (FTS) ? Okay, maybe you did, but I didn’t know this.

    Problem Statement
    My goal is to enable users to search the metadata (title, composer, copyright, other tags) attached to various games. To do this, I want to index a series of contrived documents that describe the metadata. 2 examples of these contrived documents, interesting because both of these games have very different titles depending on region, something the search engine needs to account for :

    system : Nintendo NES
    game : Snoopy’s Silly Sports Spectacular
    author : None ; copyright : 1988 Kemco ; dumped by : None
    additional tags : Donald Duck.nsf Donald Duck
    

    system : Super Nintendo
    game : Arcana
    author : Jun Ishikawa, Hirokazu Ando ; copyright : 1992 HAL Laboratory ; dumped by : Datschge
    additional tags : card.rsn.gamemusic Card Master Cardmaster

    The index needs to map these documents to various pieces of game music and the search solution needs to efficiently search these documents and find the various game music entries that match a user’s request.

    Now that I’ve been looking at it for long enough, I’m able to express the problem surprisingly succinctly. If I had understood that much originally, this probably would have been simpler.

    First Solution & Breakage
    My original solution was based on SWISH-E. The CGI script was a C program that statically linked the SWISH-E library into a binary that miraculously ran on my web provider. At least, it ran until it decided to stop working a month ago when I added a new feature unrelated to search. It was a very bizarre problem, the details of which would probably bore you to tears. But if you care, the details are all there in the Stack Overflow question I asked on the matter.

    While no one could think of a direct answer to the problem, I eventually thought of a roundabout fix. The problem seemed to pertain to the static linking. Since I couldn’t count on the relevant SWISH-E library to be on my host’s system, I uploaded the shared library to the same directory as the CGI script and used dlopen()/dlsym() to fetch the functions I needed. It worked again, but I didn’t know for how long.

    Searching For A Hosted Solution
    I know that anything is possible in this day and age ; while my web host is fairly limited, there are lots of solutions for things like this and you can deploy any technology you want, and for reasonable prices. I figured that there must be a hosted solution out there.

    I have long wanted a compelling reason to really dive into Amazon Web Services (AWS) and this sounded like a good opportunity. After all, my script works well enough ; if I could just find a simple Linux box out there where I could install the SWISH-E library and compile the CGI script, I should be good to go. AWS has a free tier and I started investigating this approach. But it seems like a rabbit hole with a lot of moving pieces necessary for such a simple task.

    I had heard that AWS had something in this area. Sure enough, it’s called CloudSearch. However, I’m somewhat discouraged by the fact that it would cost me around $75 per month to run the smallest type of search instance which is at the core of the service.

    Finally, I came to another platform called Heroku. It’s supposed to be super-scalable while having a free tier for hobbyists. I started investigating FTS on Heroku and found this article which recommends using the FTS capabilities of their standard hosted PostgreSQL solution. However, the free tier of Postgres hosting only allows for 10,000 rows of data. Right now, my database has about 5400 rows. I expect it to easily overflow the 10,000 limit as soon as I incorporate the C64 SID music corpus.

    However, this Postgres approach planted a seed.

    RDBMS Revelation
    I have 2 RDBMSs available on my hosting plan– MySQL and SQLite (the former is a separate service while SQLite is built into PHP). I quickly learned that both have FTS capabilities. Since I like using SQLite so much, I elected to leverage its FTS functionality. And it’s just this simple :

    CREATE VIRTUAL TABLE gamemusic_metadata_fts USING fts3
    ( content TEXT, game_id INT, title TEXT ) ;
    

    SELECT id, title FROM gamemusic_metadata_fts WHERE content MATCH "arcana" ;
    479|Arcana

    The ‘content’ column gets the metadata pseudo-documents. The SQL gets wrapped up in a little PHP so that it queries this small database and turns the result into JSON. The script is then ready as a drop-in replacement for the previous script.

  • C++ Realtime OpenGL videogame streaming library

    23 août 2013, par Mufasa

    I need to select a video encoder and library to take raw RGB frames in realtime from a videogame and send them to a remote client. The remote client is sending back mouse events. Right now I have a setup where the server is using glReadPixels to read frame data, then sending information in the form of 16x16 tiles with runlength encoding that have changed since the last read. (The videogame has a lot of solid color areas). My client works to control the game. But the transmission of frames to the client, and mouse events from the client, is too slow. Both use a TCP socket to communicate.

    I'm looking into using ffmpeg or x264 to encode into H.264 video ; do you think this could reduce latency ? I'm on windows and I can't figure out how to set up x264 libraries in Visual Studio, but I have got ffmpeg libraries installed.

    Another name I have heard is live555 but I don't know much about that.

    Do you have any recommendations ?