Recherche avancée

Médias (1)

Mot : - Tags -/wave

Autres articles (33)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

  • Création définitive du canal

    12 mars 2010, par

    Lorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
    A la validation, vous recevez un email vous invitant donc à créer votre canal.
    Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
    A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (4367)

  • Revision c3378771b3 : third_party/libwebm : pull from upstream Pulling libwebm from upstream Changes

    2 mai 2014, par Vignesh Venkatasubramanian

    Changed Paths :
     Modify /third_party/libwebm/README.libvpx


     Modify /third_party/libwebm/mkvmuxer.cpp


     Modify /third_party/libwebm/mkvmuxer.hpp


     Modify /third_party/libwebm/mkvmuxertypes.hpp


     Modify /third_party/libwebm/mkvmuxerutil.cpp


     Modify /third_party/libwebm/mkvmuxerutil.hpp


     Modify /third_party/libwebm/mkvparser.cpp


     Modify /third_party/libwebm/mkvparser.hpp


     Modify /third_party/libwebm/mkvreader.cpp


     Modify /third_party/libwebm/mkvreader.hpp


     Modify /third_party/libwebm/mkvwriter.cpp


     Modify /third_party/libwebm/mkvwriter.hpp


     Modify /third_party/libwebm/webmids.hpp



    third_party/libwebm : pull from upstream

    Pulling libwebm from upstream

    Changes from upstream :
    249629d make Mkv(Reader|Writer)(FILE*) explicit
    7f3cda4 mkvparser : fix a bunch of windows warnings
    5c06178 Merge "clang-format on mkvparser.[ch]pp"
    4df111e clang-format on mkvparser.[ch]pp
    7b24501 clang-format re-run.
    c6767b9 Change AlignTrailingComments to false in .clang-format
    9097a06 Merge "muxer : Reject file if TrackType is never specified"
    eddf974 Merge "clang-format on mkvmuxertypes.hpp and webmids.hpp"
    def325c muxer : Reject file if TrackType is never specified
    41f869c Merge "clang-format on webvttparser.(cc|h)"
    fd0be37 clang-format on webvttparser.(cc|h)
    207d8a1 Merge "clang-format on mkvmuxerutil.[ch]pp"
    02429eb Merge "clang-format on mkvwriter.[ch]pp"
    0cf7b1b Merge "clang-format on mkvreader.[ch]pp"
    2e80fed Merge "clang-format on sample.cpp"
    3402e12 Merge "clang-format on sample_muxer.cpp"
    1a685db Merge "clang-format on sample_muxer_metadata.(cc|h)"
    6634c7f Merge "clang-format on vttreader.cc"
    7566004 Merge "clang-format on vttdemux.cc"
    9915b84 clang-format on mkvreader.[ch]pp
    7437254 clang-format on mkvmuxertypes.hpp and webmids.hpp
    0d5a98c clang-format on sample_muxer.cpp
    e3485c9 clang-format on vttdemux.cc
    46cc823 clang-format on dumpvtt.cc
    5218bd2 clang-format on vttreader.cc
    1a0130d clang-format on sample_muxer_metadata.(cc|h)
    867f189 clang-format on sample.cpp
    4c7bec5 clang-format on mkvwriter.[ch]pp
    9ead078 clang-format on mkvmuxerutil.[ch]pp
    fb6b6e6 clang-format on mkvmuxer.[ch]pp
    ce77592 Update .clang-format to allow short functions in one line
    0a24fe4 Merge "Add support for DateUTC and DefaultDuration in MKV Muxer."
    11d5b66 Merge "Add .clang-format"
    a1a3b14 Add .clang-format
    0fcec38 Add support for DateUTC and DefaultDuration in MKV Muxer.

    Change-Id : Ia0ed161ffc3d63c2eba8ed145707ffe543617976

  • Java Runtime Command with disrupt/additonal command

    11 juin 2014, par oneofakind

    Actually the example below is not what I want to do, its sort of related to what I really wanna do. Its basically having to execute a shell command or a cmd command and executing another command relating to the first command. Somehow it stops/proceeds/respond to the first command executed.

    It’s actually ffmpeg execution what I wanna do, recording the screen. Problem is that I cannot execute a "q" key to stop the recording. Example above is sort of a simple, but I hope applicable, to my main problem.

    Here is the simplified problem :

    StringBuffer output = new StringBuffer();
    String domainName = "google.com";
    String command = "ping -t " + domainName;
    Process p;
    try {
       p = Runtime.getRuntime().exec(command);
       p.waitFor();
       BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

                   String line = "";          
       while ((line = reader.readLine())!= null) {
           output.append(line + "\n");
       }

    } catch (Exception ec) {
       ec.printStackTrace();
    }


    System.out.println(output);

    What will happen here is that it will ping endlessly unless interrupted to end the ping, what will happen to the code is that it will get stuck in the line :

    p.waitFor();

    That is because, I believe, it is waiting for the command to finish before it releases it. What I want to do is to execute a "ctrl+C" or command that will stop this execution and then manipulate the result continuing through

    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    ........
    ........

    I hope you guys got what I am trying to say. :D

    Please help. Thanks.

  • mpeg2 ts android ffmpeg openmax

    10 octobre 2014, par WLGfx

    The setup is as follows :

    1. Multicast server 1000Mbs, UDP, Mpeg2-TS Part 1 (H.222) streaming live TV-channels.
    2. Quad core 1.5Ghz Android 4.2.2 GLES 2.0 renderer.
    3. FFMpeg library.
    4. Eclipse Kepler, Android SDK/NDK, etc. Running on Windows 8.1.
    5. Output screen 1920 x 1080, I am using a texture of 2048 x 1024 and getting between 35 and 45 Frames per second.

    The app :

    1. Renderer thread runs continuously and updates a single texture by uploading segments to the gpu when media images are ready.
    2. Media handler thread, downloads and processes media from server/or local storage.
    3. Video thread(s), one for buffering the UDP packets and another for decoding the packets into frames.

    I am connecting ffmpeg to the UDP stream just fine and the packets are being buffered and seemingly decoded fine. The packet buffers are plenty, no under/over-flows. The problem I am facing is it appears to be chopping up frames (ie only playing back 1 out of every so many frames). I understand that I need to distinguish I/P/B frames, but at the moment, hands up, I ain’t got a clue. I’ve even tried a hack to detect I frames to no avail. Plus, I am only rendering the frames to less than a quarter of the screen. So I’m not using full screen decoding.

    The decoded frames are also stored in separate buffers to cut out page tearing. The number of buffers I’ve changed too, from 1 to 10 with no luck.

    From what I’ve found about OpenMax IL, is it only handles MPeg2-TS Part 3 (H.264 and AAC), but you can use your own decoder. I understand that you can add your own decode component to it. Would it be worth me trying this route or should I continue on with ffmpeg ?

    The frame decoder (only the renderer will convert and scale the frames when ready)
    /*
    * This function will run through the packets and keep decoding
    * until a frame is ready first, or out of packets
    */

    while (packetsUsed[decCurrent])
    {
       hack_for_i_frame:
       i = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packets[decCurrent]);
       packetsUsed[decCurrent] = 0; // finished with this one
       i = packets[decCurrent].flags & 0x0001;
       decCurrent++;
       if (decCurrent >= MAXPACKETS) decCurrent = 0;
       if (frameFinished)
       {
           ready_pFrame = pFrame;
           frameReady = true;  // notify renderer
           frameCounter++;
           if (frameCounter>=MAXFRAMES) frameCounter = 0;
           pFrame = pFrames[frameCounter];
           return 0;
       }
       else if (i)
           goto hack_for_i_frame;
    }

    return 0;

    The packet reader (spawned as a pthread)
    void *mainPacketReader(void *voidptr)

    int res ;

    while ( threadState == TS_RUNNING )
    {
       if (packetsUsed[prCurrent])
       {
           LOGE("Packet buffer overflow, dropping packet...");
           av_read_frame( pFormatCtx, &packet );
       }
       else if ( av_read_frame( pFormatCtx, &packets[prCurrent] ) >= 0 )
       {
           if ( packets[prCurrent].stream_index == videoStream )
           {
               packetsUsed[prCurrent] = 1; // flag as used
               prCurrent++;
               if ( prCurrent >= MAXPACKETS )
               {
                   prCurrent = 0;
               }
           }

           // here check if the packet is audio and add to audio buffer
       }
    }
    return NULL;

    And the renderer just simply does this
    // texture has already been bound before calling this function

    if ( frameReady == false ) return;

    AVFrame *temp;  // set to frame 'not' currently being decoded
    temp = ready_pFrame;

    sws_scale(sws_ctx,(uint8_t const* const *)temp->data,
           temp->linesize, 0, pCodecCtx->height,
           pFrameRGB->data, pFrameRGB->linesize);

    glTexSubImage2D(GL_TEXTURE_2D, 0,
           XPOS, YPOS, WID, HGT,
           GL_RGBA, GL_UNSIGNED_BYTE, buffer);

    frameReady = false;

    In the past, libvlc had audio syncing problems too, so that is my decision for going with ffmpeg and doing all the donkey work from scratch.

    If anybody has any pointers of how to stop the choppiness of the video playback (works great in VLC player) or possibly another route to go down, it would be seriously appreciated.

    EDIT I removed the hack for the I-frame (completely useless). Move the sws_scale function from the renderer to the packet decoder. And I left the udp packet reader thread alone.

    In the meantime I’ve also changed the packet reader thread and the packet decoder threads priority to real-time. Since doing that I don’t get shed loads of dropped packets.