Recherche avancée

Médias (91)

Autres articles (41)

  • 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

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

Sur d’autres sites (7843)

  • Revision 7f009975e9 : multi-res : add parameter validity checking Added validity checking in multi-res

    11 juillet 2012, par Yunqing Wang

    Changed Paths : Modify /vp8/vp8_cx_iface.c Modify /vpx/src/vpx_encoder.c multi-res : add parameter validity checking Added validity checking in multi-res encoder. Disable spatial resampling and frame dropping before we have those supports. Also, deallocate the memory for all resolution levels once (...)

  • X264 encoding using Opencv

    29 novembre 2011, par user573193

    I am working with a high resolution camera : 4008x2672. I a writing a simple program which grabs frame from the camera and sends the frame to a avi file. For working with such a high resolution, I found only x264 codec that could do the trick (Suggestions welcome). I am using opencv for most of the image handling stuff. As mentioned in this post http://doom10.org/index.php?topic=1019.0 , I modified the AVCodecContext members as per ffmpeg presets for libx264 (Had to do this to avoid broken ffmpeg defaults settings error). This is output I am getting when I try to run the program

    libx264 @ 0x992d040]non-strictly-monotonic PTS
    1294846981.526675 1 0 //Timestamp camera_no frame_no
    1294846981.621101 1 1
    1294846981.715521 1 2
    1294846981.809939 1 3
    1294846981.904360 1 4
    1294846981.998782 1 5
    1294846982.093203 1 6
       Last message repeated 7 times
    [avi @ 0x992beb0]st:0 error, non monotone timestamps
    -614891469123651720 >= -614891469123651720

    OpenCV Error: Unspecified error (Error while writing video frame) in
    icv_av_write_frame_FFMPEG, file
    /home/ajoshi/ext/OpenCV-2.2.0/modules/highgui/src/cap_ffmpeg.cpp, line 1034
    terminate called after throwing an instance of 'cv::Exception'
    what():  /home/ajoshi/ext/OpenCV-2.2.0/modules/highgui/src/cap_ffmpeg.cpp:1034:
    error: (-2) Error while writing video frame in function icv_av_write_frame_FFMPEG

    Aborted

    Modifications to the AVCodecContext are :

    if(codec_id == CODEC_ID_H264)
    {
       //fprintf(stderr, "Trying to parse a preset file for libx264\n");
       //Setting Values manually from medium preset
       c->me_method = 7;
       c->qcompress=0.6;
       c->qmin = 10;
       c->qmax = 51;
       c->max_qdiff = 4;
       c->i_quant_factor=0.71;
       c->max_b_frames=3;
       c->b_frame_strategy = 1;
       c->me_range = 16;<br />
       c->me_subpel_quality=7;
       c->coder_type = 1;
       c->scenechange_threshold=40;
       c->partitions = X264_PART_I8X8 | X264_PART_I4X4 | X264_PART_P8X8 | X264_PART_B8X8;
       c->flags = CODEC_FLAG_LOOP_FILTER;
       c->flags2 = CODEC_FLAG2_BPYRAMID | CODEC_FLAG2_MIXED_REFS | CODEC_FLAG2_WPRED | CODEC_FLAG2_8X8DCT | CODEC_FLAG2_FASTPSKIP;
       c->keyint_min = 25;
       c->refs = 3;
       c->trellis=1;
       c->directpred = 1;
       c->weighted_p_pred=2;
    }

    I am probably not setting the dts and pts values which I believed ffmpeg should be setting it for me.

    Any sugggestions welcome.
    Thanks in advance

  • How would I assign multiple MMAP's from single file descriptor ?

    9 juin 2011, par Alex Stevens

    So, for my final year project, I'm using Video4Linux2 to pull YUV420 images from a camera, parse them through to x264 (which uses these images natively), and then send the encoded stream via Live555 to an RTP/RTCP compliant video player on a client over a wireless network. All of this I'm trying to do in real-time, so there'll be a control algorithm, but that's not the scope of this question. All of this - except Live555 - is being written in C. Currently, I'm near the end of encoding the video, but want to improve performance.

    To say the least, I've hit a snag... I'm trying to avoid User Space Pointers for V4L2 and use mmap(). I'm encoding video, but since it's YUV420, I've been malloc'ing new memory to hold the Y', U and V planes in three different variables for x264 to read upon. I would like to keep these variables as pointers to an mmap'ed piece of memory.

    However, the V4L2 device has one single file descriptor for the buffered stream, and I need to split the stream into three mmap'ed variables adhering to the YUV420 standard, like so...

    buffers[n_buffers].y_plane = mmap(NULL, (2 * width * height) / 3,
                                       PROT_READ | PROT_WRITE, MAP_SHARED,
                                       fd, buf.m.offset);
    buffers[n_buffers].u_plane = mmap(NULL, width * height / 6,
                                       PROT_READ | PROT_WRITE, MAP_SHARED,
                                       fd, buf.m.offset +
                                       ((2 * width * height) / 3 + 1) /
                                       sysconf(_SC_PAGE_SIZE));
    buffers[n_buffers].v_plane = mmap(NULL, width * height / 6,
                                       PROT_READ | PROT_WRITE, MAP_SHARED,
                                       fd, buf.m.offset +
                                       ((2 * width * height) / 3 +
                                       width * height / 6 + 1) /
                                       sysconf(_SC_PAGE_SIZE));

    Where "width" and "height" is the resolution of the video (eg. 640x480).

    From what I understand... MMAP seeks through a file, kind of like this (pseudoish-code) :

    fd = v4l2_open(...);
    lseek(fd, buf.m.offset + (2 * width * height) / 3);
    read(fd, buffers[n_buffers].u_plane, width * height / 6);

    My code is located in a Launchpad Repo here (for more background) :
    http://bazaar.launchpad.net/ alex-stevens/+junk/spyPanda/files (Revision 11)

    And the YUV420 format can be seen clearly from this Wiki illustration : http://en.wikipedia.org/wiki/File:Yuv420.svg (I essentially want to split up the Y, U, and V bytes into each mmap'ed memory)

    Anyone care to explain a way to mmap three variables to memory from the one file descriptor, or why I went wrong ? Or even hint at a better idea to parse the YUV420 buffer to x264 ? :P

    Cheers ! ^^