Recherche avancée

Médias (0)

Mot : - Tags -/flash

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

Autres articles (55)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Prérequis à l’installation

    31 janvier 2010, par

    Préambule
    Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
    Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
    Il (...)

Sur d’autres sites (8331)

  • Method For Crawling Google

    28 mai 2011, par Multimedia Mike — Big Data

    I wanted to crawl Google in order to harvest a large corpus of certain types of data as yielded by a certain search term (we’ll call it “term” for this exercise). Google doesn’t appear to offer any API to automatically harvest their search results (why would they ?). So I sat down and thought about how to do it. This is the solution I came up with.



    FAQ
    Q : Is this legal / ethical / compliant with Google’s terms of service ?
    A : Does it look like I care ? Moving right along…

    Manual Crawling Process
    For this exercise, I essentially automated the task that would be performed by a human. It goes something like this :

    1. Search for “term”
    2. On the first page of results, download each of the 10 results returned
    3. Click on the next page of results
    4. Go to step 2, until Google doesn’t return anymore pages of search results

    Google returns up to 1000 results for a given search term. Fetching them 10 at a time is less than efficient. Fortunately, the search URL can easily be tweaked to return up to 100 results per page.

    Expanding Reach
    Problem : 1000 results for the “term” search isn’t that many. I need a way to expand the search. I’m not aiming for relevancy ; I’m just searching for random examples of some data that occurs around the internet.

    My solution for this is to refine the search using the “site” wildcard. For example, you can ask Google to search for “term” at all Canadian domains using “site :.ca”. So, the manual process now involves harvesting up to 1000 results for every single internet top level domain (TLD). But many TLDs can be more granular than that. For example, there are 50 sub-domains under .us, one for each state (e.g., .ca.us, .ny.us). Those all need to be searched independently. Same for all the sub-domains under TLDs which don’t allow domains under the main TLD, such as .uk (search under .co.uk, .ac.uk, etc.).

    Another extension is to combine “term” searches with other terms that are likely to have a rich correlation with “term”. For example, if “term” is relevant to various scientific fields, search for “term” in conjunction with various scientific disciplines.

    Algorithmically
    My solution is to create an SQLite database that contains a table of search seeds. Each seed is essentially a “site :” string combined with a starting index.

    Each TLD and sub-TLD is inserted as a searchseed record with a starting index of 0.

    A script performs the following crawling algorithm :

    • Fetch the next record from the searchseed table which has not been crawled
    • Fetch search result page from Google
    • Scrape URLs from page and insert each into URL table
    • Mark the searchseed record as having been crawled
    • If the results page indicates there are more results for this search, insert a new searchseed for the same seed but with a starting index 100 higher

    Digging Into Sites
    Sometimes, Google notes that certain sites are particularly rich sources of “term” and offers to let you search that site for “term”. This basically links to another search for ‘term site:somesite”. That site gets its own search seed and the program might harvest up to 1000 URLs from that site alone.

    Harvesting the Data
    Armed with a database of URLs, employ the following algorithm :

    • Fetch a random URL from the database which has yet to be downloaded
    • Try to download it
    • For goodness sake, have a mechanism in place to detect whether the download process has stalled and automatically kill it after a certain period of time
    • Store the data and update the database, noting where the information was stored and that it is already downloaded

    This step is easy to parallelize by simply executing multiple copies of the script. It is useful to update the URL table to indicate that one process is already trying to download a URL so multiple processes don’t duplicate work.

    Acting Human
    A few factors here :

    • Google allegedly doesn’t like automated programs crawling its search results. Thus, at the very least, don’t let your script advertise itself as an automated program. At a basic level, this means forging the User-Agent : HTTP header. By default, Python’s urllib2 will identify itself as a programming language. Change this to a well-known browser string.
    • Be patient ; don’t fire off these search requests as quickly as possible. My crawling algorithm inserts a random delay of a few seconds in between each request. This can still yield hundreds of useful URLs per minute.
    • On harvesting the data : Even though you can parallelize this and download data as quickly as your connection can handle, it’s a good idea to randomize the URLs. If you hypothetically had 4 download processes running at once and they got to a point in the URL table which had many URLs from a single site, the server might be configured to reject too many simultaneous requests from a single client.

    Conclusion
    Anyway, that’s just the way I would (and did) do it. What did I do with all the data ? That’s a subject for a different post.

    Adorable spider drawing from here.

  • ffplay cannot play more than one song

    5 février 2020, par Bernie gach

    i have taken ffplay.c file from http://ffmpeg.org/doxygen/trunk/ffplay_8c-source.html and re edited it to a cpp file to embed in my win32 gui application . i have made the following changes to it.

    1. made the int main function into a local function as follows, i can pass the HWND to embedd the player
    void Ffplay::play_song(string file, HWND parent, bool* successfull)
    {
       int flags;
       VideoState* is;
       input_filename = file;
       /* register all codecs, demux and protocols */
    #if CONFIG_AVDEVICE
       avdevice_register_all();
    #endif
       //avformat_network_init();
       //check whether the filename is valid
       if (input_filename.empty())
       {
           logger.log(logger.LEVEL_ERROR, "filename %s is not valid\n", file);
           return;
       }
       if (display_disable)
       {
           video_disable = 1;
       }
       flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
       if (audio_disable)
           flags &= ~SDL_INIT_AUDIO;
       else
       {
           /* Try to work around an occasional ALSA buffer underflow issue when the
            * period size is NPOT due to ALSA resampling by forcing the buffer size. */
           if (!SDL_getenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE"))
               SDL_setenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE", "1", 1);
       }
       if (display_disable)
           flags &= ~SDL_INIT_VIDEO;
       SDL_SetMainReady();
       if (SDL_Init(flags))
       {
           logger.log(logger.LEVEL_ERROR, "Could not initialize SDL - %s\n", SDL_GetError());
           logger.log(logger.LEVEL_ERROR, "(Did you set the DISPLAY variable?)\n");
           return;
       }
       //Initialize optional fields of a packet with default values.
       //Note, this does not touch the data and size members, which have to be initialized separately.
       av_init_packet(&flush_pkt);
       flush_pkt.data = (uint8_t*)&flush_pkt;

       if (!display_disable)
       {
           int flags = SDL_WINDOW_HIDDEN;
           if (alwaysontop)
    #if SDL_VERSION_ATLEAST(2,0,5)
               flags |= SDL_WINDOW_ALWAYS_ON_TOP;
    #else
               logger.log(logger.LEVEL_INFO, "SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
    #endif
           if (borderless)
               flags |= SDL_WINDOW_BORDERLESS;
           else
               flags |= SDL_WINDOW_RESIZABLE;
           SDL_InitSubSystem(flags);
           ShowWindow(parent, true);
           //window = SDL_CreateWindow(program_name, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, default_width, default_height, flags);
           window = SDL_CreateWindowFrom(parent);
           SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
           if (window) {
               renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
               if (!renderer)
               {
                   logger.log(logger.LEVEL_ERROR, "Failed to initialize a hardware accelerated renderer: %s\n", SDL_GetError());
                   renderer = SDL_CreateRenderer(window, -1, 0);
               }
               if (renderer)
               {
                   if (!SDL_GetRendererInfo(renderer, &renderer_info))
                   {
                       logger.log(logger.LEVEL_INFO, "Initialized %s renderer.\n", renderer_info.name);
                   }
               }
           }
           if (!window || !renderer || !renderer_info.num_texture_formats)
           {
               logger.log(logger.LEVEL_ERROR, "Failed to create window or renderer: %s\n", SDL_GetError());
               return;
           }
       }

       is = stream_open(input_filename.c_str(), file_iformat);
       if (!is)
       {
           logger.log(logger.LEVEL_ERROR, "Failed to initialize VideoState!\n");
           return;
       }
       //the song is playing now
       *successfull = true;
       event_loop(is);
       //the song has quit;
       *successfull = false;
    }
    1. changed the callback functions as the static ones couldn’t be used by c++ eg,
    void Ffplay::static_sdl_audio_callback(void* opaque, Uint8* stream, int len)
    {
       static_cast(opaque)->sdl_audio_callback(opaque, stream, len);
    }

    closing doesn’t change from the main file to close the audio and sdl framework

    void Ffplay::do_exit(VideoState* is)
    {
       abort = true;
       if(is)
       {
           stream_close(is);
       }
       if (renderer)
           SDL_DestroyRenderer(renderer);
       if (window)
            SDL_DestroyWindow(window);
    #if CONFIG_AVFILTER
       av_freep(&vfilters_list);
    #endif
       avformat_network_deinit();
       SDL_Quit();

    }

    i call the functions as follows from main gui

    ft=std::async(launch::async, &Menu::play_song, this, songs_to_play.at(0));

    the menu::play_song function is :

    void Menu::play_song(wstring song_path)
    {
       ready_to_play_song = false;
       OutputDebugString(L"\nbefore song\n");
       using std::future;
       using std::async;
       using std::launch;

       string input{ song_path.begin(),song_path.end() };
       Ffplay ffplay;
       ffplay.play_song(input, h_sdl_window, &song_opened);

       OutputDebugString(L"\nafter song\n");
       ready_to_play_song = true;
    }

    THE PROBLEM is i can only play one song . if i call the menu::play_song function again the sound is missing and the video/art cover is occasionally missing also. it seems some resources are not been released or something like that.

    i have localised the proble to this function

    int Ffplay::packet_queue_get(PacketQueue* q, AVPacket* pkt, int block, int* serial)
    {

       MyAVPacketList* pkt1;
       int ret;
       int count=0;
       SDL_LockMutex(q->mutex);

       for (;;)
       {


           if (q->abort_request)
           {
               ret = -1;
               break;
           }

           pkt1 = q->first_pkt;
           if (pkt1) {
               q->first_pkt = pkt1->next;
               if (!q->first_pkt)
                   q->last_pkt = NULL;
               q->nb_packets--;
               q->size -= pkt1->pkt.size + sizeof(*pkt1);
               q->duration -= pkt1->pkt.duration;
               *pkt = pkt1->pkt;
               if (serial)
                   *serial = pkt1->serial;
               av_free(pkt1);
               ret = 1;
               break;
           }
           else if (!block) {
               ret = 0;
               break;
           }
           else
           {
               logger.log(logger.LEVEL_INFO, "packet_queue before");
               SDL_CondWait(q->cond, q->mutex);
               logger.log(logger.LEVEL_INFO, "packet_queue after");

           }
       }
       SDL_UnlockMutex(q->mutex);
       return ret;
    }

    the call to SDL_CondWait(q->cond, q->mutex); never returns

  • FFMPEG, Creating an MPEG-DASH stream with existing inputs

    10 septembre 2019, par kitensei

    I am trying to generating a DASH .mpd file from multiple inputs (2 videos, 1 audio) without any success..

    What I’d like to do it’s simple getting the streams and create an mpd file without any re encoding since I’ve already my sources ready.

    The output seems to work in rxplayer, but I do get a lot of errors (see log below).

    Here are my 3 sources (taken from http://dash-mse-test.appspot.com/media.html) :

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-89.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-89.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-24T03:04:15.000000Z
     Duration: 00:03:01.39, start: 0.000000, bitrate: 4202 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 171 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-88.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-88.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-27T01:01:28.000000Z
     Duration: 00:03:01.43, start: 0.000000, bitrate: 2076 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 81 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-8b.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-8b.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6mp41
       creation_time   : 2012-08-27T01:19:23.000000Z
     Duration: 00:03:01.63, start: 0.000000, bitrate: 31 kb/s
       Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 1 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T01:19:23.000000Z
         handler_name    : SoundHandler

    And here how I am "muxing" them together with an .mpd manifest :

    ffmpeg  \
    -re \
    -i ../test-sources/car/car-20120827-88.mp4 \
    -i ../test-sources/car/car-20120827-89.mp4 \
    -i ../test-sources/car/car-20120827-8d.mp4 \
    -map 0:0  \
    -map 1:0 \
    -map 2:0 \
    -c copy \
    -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
    -b_strategy 0 -use_timeline 1 -use_template 1 \
    -adaptation_sets "id=0,streams=v id=1,streams=a" \
    -f dash out.mpd

    The generated mpd file :

    <?xml version="1.0" encoding="utf-8"?>
    <mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT3M1.3S" minbuffertime="PT10.0S">
       <programinformation>
       </programinformation>
       <period start="PT0.0S">
           <adaptationset contenttype="video" segmentalignment="true" bitstreamswitching="true" lang="und">
               <representation mimetype="video/mp4" codecs="avc1.4d401f" bandwidth="81397" width="1280" height="720" framerate="45000/1877">
                   <segmenttemplate timescale="24000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="120128"></s>
                           <s d="120120" r="34"></s>
                           <s d="29023"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
               <representation mimetype="video/mp4" codecs="avc1.640028" bandwidth="171953" width="1920" height="1080" framerate="45000/1877">
                   <segmenttemplate timescale="24000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="121129"></s>
                           <s d="239239"></s>
                           <s d="120120" r="32"></s>
                           <s d="29023"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
           </adaptationset>
           <adaptationset contenttype="audio" segmentalignment="true" bitstreamswitching="true" lang="und">
               <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="13976" audiosamplingrate="44100">
                   <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
                   <segmenttemplate timescale="44100" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="219136"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="63488"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
           </adaptationset>
       </period>
    </mpd>

    But I get a lot of errors :

    ➜  test-dash git:(0.1) ✗ ffmpeg  \
    -re \
    -i ../test-sources/car/car-20120827-88.mp4 \
    -i ../test-sources/car/car-20120827-89.mp4 \
    -i ../test-sources/car/car-20120827-8d.mp4 \
    -map 0:0  \
    -map 1:0 \
    -map 2:0 \
    -c copy \
    -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
    -b_strategy 0 -use_timeline 1 -use_template 1 \
    -adaptation_sets "id=0,streams=v id=1,streams=a" \
    -f dash out.mpd
    ffmpeg version n4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 9.1.0 (GCC)
     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
     libavutil      56. 31.100 / 56. 31.100
     libavcodec     58. 54.100 / 58. 54.100
     libavformat    58. 29.100 / 58. 29.100
     libavdevice    58.  8.100 / 58.  8.100
     libavfilter     7. 57.100 /  7. 57.100
     libswscale      5.  5.100 /  5.  5.100
     libswresample   3.  5.100 /  3.  5.100
     libpostproc    55.  5.100 / 55.  5.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-88.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-27T01:01:28.000000Z
     Duration: 00:03:01.43, start: 0.000000, bitrate: 2076 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 81 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-89.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-24T03:04:15.000000Z
     Duration: 00:03:01.39, start: 0.000000, bitrate: 4202 kb/s
       Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 171 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-8d.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6mp41
       creation_time   : 2012-08-27T00:59:44.000000Z
     Duration: 00:03:01.58, start: 0.000000, bitrate: 255 kb/s
       Stream #2:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 13 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T00:59:44.000000Z
         handler_name    : SoundHandler
    [dash @ 0x55b464bb1240] Opening 'init-stream0.m4s' for writing
    [dash @ 0x55b464bb1240] Opening 'init-stream1.m4s' for writing
    [dash @ 0x55b464bb1240] Opening 'init-stream2.m4s' for writing
    Output #0, dash, to 'out.mpd':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       encoder         : Lavf58.29.100
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, q=2-31, 81 kb/s, 23.97 fps, 23.97 tbr, 24k tbn, 23.98 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler
       Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, q=2-31, 171 kb/s, 23.97 fps, 23.97 tbr, 24k tbn, 23.98 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler
       Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 13 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T00:59:44.000000Z
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #1:0 -> #0:1 (copy)
     Stream #2:0 -> #0:2 (copy)
    Press [q] to stop, [?] for help
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00001.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00001.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00001.m4s.tmp' for writing
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 119119 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00002.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Non-monotonous DTS in output stream 0:1; previous: 119127, current: 119119; changing to 119128. This may result in incorrect timestamps in the output file.
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -1000 / timestamp: 119128 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00002.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00002.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 120120 is out of range for mov/mp4 format
    [mp4 @ 0x55b464c425c0] pts has no value
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 239239 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing74 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 359359 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00004.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 359359 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00004.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing81 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 479479 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00005.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 479479 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00004.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00005.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing86 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 599599 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00006.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 599599 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00005.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00006.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing95 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 719719 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00007.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 719719 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00006.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00007.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing53 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 839839 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00008.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 839839 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00007.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00008.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing59 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 959959 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00009.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 959959 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00008.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00009.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing66 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1080079 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00010.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1080079 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00009.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00010.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing73 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1200199 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00011.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1200199 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00010.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00011.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing82 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1320319 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00012.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1320319 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00011.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00012.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing90 bitrate=N/A speed=   1x    
    ...
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 3962959 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00033.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00034.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing06 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4083079 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00035.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4083079 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00034.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00035.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing10 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4203199 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00036.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4203199 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00035.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00036.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing67 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4323319 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00037.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4323319 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00036.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00037.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing18 bitrate=N/A speed=   1x    
       frame= 4350 fps= 24 q=-1.0 Lq=-1.0 size=N/A time=00:03:01.55 bitrate=N/A speed=   1x    
       video:138926kB audio:5621kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown