Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (105)

  • 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 (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (11391)

  • avutil/mathematics : speed up av_gcd by using Stein’s binary GCD algorithm

    11 octobre 2015, par Ganesh Ajjanagadde
    avutil/mathematics : speed up av_gcd by using Stein’s binary GCD algorithm
    

    This uses Stein’s binary GCD algorithm :
    https://en.wikipedia.org/wiki/Binary_GCD_algorithm
    to get a roughly 4x speedup over Euclidean GCD on standard architectures
    with a compiler intrinsic for ctzll, and a roughly 2x speedup otherwise.
    At the moment, the compiler intrinsic is used on GCC and Clang due to
    its easy availability.

    Quick note regarding overflow : yes, subtractions on int64_t can, but the
    llabs takes care of that. The llabs is also guaranteed to be safe, with
    no annoying INT64_MIN business since INT64_MIN being a power of 2, is
    shifted down before being sent to llabs.

    The binary GCD needs ff_ctzll, an extension of ff_ctz for long long (int64_t). On
    GCC, this is provided by a built-in. On Microsoft, there is a
    BitScanForward64 analog of BitScanForward that should work ; but I can’t confirm.
    Apparently it is not available on 32 bit builds ; so this may or may not
    work correctly. On Intel, per the documentation there is only an
    intrinsic for _bit_scan_forward and people have posted on forums
    regarding _bit_scan_forward64, but often their documentation is
    woeful. Again, I don’t have it, so I can’t test.

    As such, to be safe, for now only the GCC/Clang intrinsic is added, the rest
    use a compiled version based on the De-Bruijn method of Leiserson et al :
    http://supertech.csail.mit.edu/papers/debruijn.pdf.

    Tested with FATE, sample benchmark (x86-64, GCC 5.2.0, Haswell)
    with a START_TIMER and STOP_TIMER in libavutil/rationsl.c, followed by a
    make fate.

    aac-am00_88.err :
    builtin :
    714 decicycles in av_gcd, 4095 runs, 1 skips

    de-bruijn :
    1440 decicycles in av_gcd, 4096 runs, 0 skips

    previous :
    2889 decicycles in av_gcd, 4096 runs, 0 skips

    Signed-off-by : Ganesh Ajjanagadde <gajjanagadde@gmail.com>
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavutil/intmath.h
    • [DH] libavutil/mathematics.c
  • How to estimate bandwidth / speed requirements for real-time streaming video ?

    19 juin 2016, par Vivek Seth

    For a project I’m working on, I’m trying to stream video to an iPhone through its headphone jack. My estimated bitrate is about 200kbps (If i’m wrong about this, please ignore that).

    I’d like to squeeze as much performance out of this bitrate as possible and sound is not important for me, only video. My understanding is that to stream a a real-time video I will need to encode it with some codec on-the-fly and send compressed frames to the iPhone for it to decode and render. Based on my research, it seems that H.265 is one of the most space efficient codecs available so i’m considering using that.

    Assuming my basic understanding of live streaming is correct, how would I estimate the FPS I could achieve for a given resolution using the H.265 codec ?

    The best solution I can think of it to take a video file, encode it with H.265 and trim it to 1 minute of length to see how large the file is. The issue I see with this approach is that I think my calculations would include some overhead from the video container format (AVI, MKV, etc) and from the audio channels that I don’t care about.

  • OpenCV [[mjpeg @ 0000000000428480] overread 8] during reading a frame from camera

    8 octobre 2015, par wojcienty

    I have a very annoying OpenCV error, that i can’t understand, and handle with.
    I write an application which gets mjpg’s stream from ip camera, and process it, but when i try to load image from stream, sometimes i have

    [mjpeg @ 0000000000428480] overread 8

    error, and i don’t know why.
    Even if i try to skip this issue, and try to load next frame from the stream, the application stucks on

    frameStatus = cameraHandler->read(mat);

    This is code for connection establishing :

    void ImageProcessor::connectWithCamera(VideoCapture * cameraHandler) {
       if (cameraHandler != nullptr) {
           Logger::log("Closing existing camera stream.");
           cameraHandler->release();
           delete cameraHandler;
       }
       Logger::log("Camera configuration and connection establishing.");
       cameraHandler = new VideoCapture();
       cameraHandler->set(CV_CAP_PROP_FRAME_WIDTH, config.RESOLUTION_WIDTH);
       cameraHandler->set(CV_CAP_PROP_FRAME_HEIGHT, config.RESOLUTION_HEIGHT);
       cameraHandler->set(CV_CAP_PROP_FPS, config.CAMERA_FPS);
       cameraHandler->set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));
       while (!cameraHandler->open(config.LINK)) {
           Logger::log("Cannot connect to camera! Trying again.");
       }
    }

    And this is code for capturing images :

    void ImageProcessor::start() {

       VideoCapture * cameraHandler = new VideoCapture();
       this->connectWithCamera(cameraHandler);
       this->connectWithServer(this->serverConnection);

       Logger::log("Id sending.");
       serverConnection->send(config.TOKEN + "\n");
       Logger::log("Computations starting.");

       Mat mat;
       Result * result = nullptr;
       int delta = 1000 / cameraHandler->get(CV_CAP_PROP_FPS);
       char frameErrorCounter = 0;
       bool frameStatus;

       while (true) {
           frameStatus = false;
           cv::waitKey(delta);

           try {
               frameStatus = cameraHandler->read(mat);
           } catch (std::exception&amp; e) {
               std::string message = e.what();
               Logger::log("Critical camera error! : " + message);
           }

           if (!frameStatus) {
               Logger::log("Cannot read a frame from source. ");
               ++frameErrorCounter;
               if (!cameraHandler->isOpened() || frameErrorCounter >= this->GET_FRAME_ERROR_COUNTER) {
                   Logger::log("Probably camera is disconnected. Trying to establish connection again.");
                   frameErrorCounter = 0;
                   this->connectWithCamera(cameraHandler);
                   Logger::log("Computations starting.");
               }
               continue;
           }

           result = processImage(mat);

           std::string stringResult;
           if (result == nullptr) {
               stringResult = this->NO_RESULT;
               delete result;
               result = nullptr;
           } else {
               stringResult = result->toJson();
           }

           if (!serverConnection->send(stringResult)) {
               Logger::log("Server connection lost, trying to establish it again.");
               serverConnection->close();
               while (!serverConnection->isOpen()) {
                   this->connectWithServer(serverConnection);
               }
           }

           mat.release();
       }

    }

    Thanks in advance !