Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

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

Autres articles (100)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (6183)

  • Stack AVFrame side by side (libav/ffmpeg)

    22 février 2018, par dronemastersaga

    So I am trying to combine two H264 livestreams of 1920x1080 resolution side-by-side to a livestream of 3840x1080 resolution.

    For this, I can decode streams to AVFrames in libav/FFmpeg that I would like to combine into a bigger frame. The Input AVFrames : Two 1920x1080 frames in NV12 format (description : planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V))

    The way I have figured out is with colorspace conversion (YUV to BGR) in libav, then to change it to OpenCV Mat, then to use hconcat in OpenCV to stack together, then colorspace conversion (BGR to YUV) in AVFormat.

    Below is the method currently being used :

    //Prior code is too long: Basically it decodes 2 streams to AVFrames frame1 and frame2 in a loop
    sws_scale(swsContext, (const uint8_t *const *) frame1->data, frame1->linesize, 0, 1080, (uint8_t *const *) frameBGR1->data, frameBGR1->linesize);
    sws_scale(swsContext, (const uint8_t *const *) frame2->data, frame2->linesize, 0, 1080, (uint8_t *const *) frameBGR2->data, frameBGR2->linesize);
    Mat matFrame1(1080, 1920, CV_8UC3, frameBGR1->data[0], (size_t) frameBGR1->linesize[0]);
    Mat matFrame2(1080, 1920, CV_8UC3, frameBGR2->data[0], (size_t) frameBGR2->linesize[0]);
    Mat fullFrame;
    hconcat(matFrame1, matFrame2, fullFrame);
    const int stride[] = { static_cast<int>(fullFrame.step[0]) };
    sws_scale(modifyContext, (const uint8_t * const *)&amp;fullFrame.data, stride, 0, fullFrame.rows, newFrame->data, newFrame->linesize);
    //From here, newFrame is sent to the encoder
    </int>

    The resulting image is satisfactory but it does lose quality in colorspace conversion. However this method is too slow to use (I’m at 15 fps and I need 30). Is there a way to stack AVFrames directly without colorspace conversion ? Or is there any better way to do this ? I searched a lot about this and I couldn’t find any solution to this. Please advise.

  • Piwik SSO options and why is it useful ?

    8 novembre 2017, par Piwik Core Team — Plugins

    Bored with typing again and again different logins and passwords for each service you have access to ? Would you like to add hundreds or thousands of users with different roles to your Piwik at once ? Would you like to save time and effort of managing your users while increasing the security in your business ? Guess what, Piwik has come up with great features to do just that.

    But what is a SSO ?

    Before introducing you to new Piwik features, let me explain what a SSO is.
    SSO is the acronym for Single Sign On. As its name suggests this authentication process allows a user to access multiple applications with one set of login credentials.

    Advantages of using a SSO are numerous :

    • improving security, for example when an employee is leaving your company, how can you check that all his credentials have been removed ?
    • reducing employees time-wasters such as having to enter logins/passwords each time.
    • providing a centralized database for administrators. They can then easily manage permissions of all employees saving them heaps of time.
    • reduces support costs related to authentication / accounts management.

    In order to provide SSO options, two Piwik plugins have been developed and are available on the marketplace :

    SAML

    SAML stands for “Security Assertion Markup Language”, it is a standard in order to exchange authentication and authorization between an identity provider (OneLogin, Okta, Ping Identity, ADFS, Google, Salesforce, SharePoint…) and a service provider.
    An identity provider is an online service that authenticates users on the Internet by using security tokens.

    Are you wondering if your business or organization is using any of these providers ? We recommend to ask your operations team or sysadmin.

    At InnoCraft, we developed a plugin in order to allow SSO with SAML for Piwik. It can ensure consistent access control across the enterprise and external providers, potentially reducing support costs related to authentication and accounts management.

    The installation process is straightforward. All you need is to get the SAML premium feature from the marketplace. Once installed, you will access the SAML configuration interface through the admin where you can configure various settings :

    • SAML Status
    • Identity Provider (Entity ID, SSO endpoint info, Public x509 certificate)
    • Just-in-time provisioning and Mapping attributes
    • Access Synchronization
    • Advanced settings

    From there you will need to follow our detailed documentation to have it up and running :
    https://piwik.org/docs/login-saml/.
    Once finished, you will then be able to use SAML to authenticate to your Piwik account :

    As all premium features, SAML is eligible to a 30-day period money back guarantee, so do not hesitate to have it a try.

    LDAP

    LDAP stands for Lightweight Directory Access Protocol. As its names implies LDAP is a directory, hosted on a server, which organizes the data about people in your company.
    Thanks to the LDAP plugin, Piwik can be connected to your LDAP infrastructure and then use all its power in order to give each individual an access with different rights according to their needs.

    Let’s say that you have 1,000 employees within a company and they all need right now an access to the analytics reports in Piwik with different roles. This is what LDAP can do.

    Moreover if your business or organization is already using LDAP, we recommend using the LDAP connector for Piwik for better security, to stop wasting time of your users and sysadmins, and to reduce the costs related to account management.

    You understood it well. LDAP is a plugin which saves a LOT of time within an organization. Here is a preview of the settings part :

    LDAP has been developed by the Piwik core team and is available as a Free plugin on the marketplace.

    If you are surprised by the possibilities that Piwik is offering in terms of plugins, the good news is that many other plugins are waiting for you on the marketplace. Check out our premium marketplace which offers state-of-the-art plugins to get the most out of Piwik.

    And if you are a developer feel free to create your own plugin, a detailed documentation is available at : https://developer.piwik.org/guides/getting-started-part-1.

  • Live audio using ffmpeg, javascript and nodejs

    8 novembre 2017, par klaus

    I am new to this thing. Please don’t hang me for the poor grammar. I am trying to create a proof of concept application which I will later extend. It does the following : We have a html page which asks for permission to use the microphone. We capture the microphone input and send it via websocket to a node js app.

    JS (Client) :

    var bufferSize = 4096;
    var socket = new WebSocket(URL);
    var myPCMProcessingNode = context.createScriptProcessor(bufferSize, 1, 1);
    myPCMProcessingNode.onaudioprocess = function(e) {
     var input = e.inputBuffer.getChannelData(0);
     socket.send(convertFloat32ToInt16(input));
    }

    function convertFloat32ToInt16(buffer) {
     l = buffer.length;
     buf = new Int16Array(l);
     while (l--) {
       buf[l] = Math.min(1, buffer[l])*0x7FFF;
     }
     return buf.buffer;
    }

    navigator.mediaDevices.getUserMedia({audio:true, video:false})
                                   .then(function(stream){
                                     var microphone = context.createMediaStreamSource(stream);
                                     microphone.connect(myPCMProcessingNode);
                                     myPCMProcessingNode.connect(context.destination);
                                   })
                                   .catch(function(e){});

    In the server we take each incoming buffer, run it through ffmpeg, and send what comes out of the std out to another device using the node js ’http’ POST. The device has a speaker. We are basically trying to create a 1 way audio link from the browser to the device.

    Node JS (Server) :

    var WebSocketServer = require('websocket').server;
    var http = require('http');
    var children = require('child_process');

    wsServer.on('request', function(request) {
     var connection = request.accept(null, request.origin);
     connection.on('message', function(message) {
       if (message.type === 'utf8') { /*NOP*/ }
       else if (message.type === 'binary') {
         ffm.stdin.write(message.binaryData);
       }
     });
     connection.on('close', function(reasonCode, description) {});
     connection.on('error', function(error) {});
    });

    var ffm = children.spawn(
       './ffmpeg.exe'
      ,'-stdin -f s16le -ar 48k -ac 2 -i pipe:0 -acodec pcm_u8 -ar 48000 -f aiff pipe:1'.split(' ')
    );

    ffm.on('exit',function(code,signal){});

    ffm.stdout.on('data', (data) => {
     req.write(data);
    });

    var options = {
     host: 'xxx.xxx.xxx.xxx',
     port: xxxx,
     path: '/path/to/service/on/device',
     method: 'POST',
     headers: {
      'Content-Type': 'application/octet-stream',
      'Content-Length': 0,
      'Authorization' : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      'Transfer-Encoding' : 'chunked',
      'Connection': 'keep-alive'
     }
    };

    var req = http.request(options, function(res) {});

    The device supports only continuous POST and only a couple of formats (ulaw, aiff, wav)

    This solution doesn’t seem to work. In the device speaker we only hear something like white noise.

    Also, I think I may have a problem with the buffer I am sending to the ffmpeg std in -> Tried to dump whatever comes out of the websocket to a .wav file then play it with VLC -> it plays everything in the record very fast -> 10 seconds of recording played in about 1 second.

    I am new to audio processing and have searched for about 3 days now for solutions on how to improve this and found nothing.

    I would ask from the community for 2 things :

    1. Is something wrong with my approach ? What more can I do to make this work ? I will post more details if required.

    2. If what I am doing is reinventing the wheel then I would like to know what other software / 3rd party service (like amazon or whatever) can accomplish the same thing.

    Thank you.