Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (54)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

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

  • FFMPEG best practice ?

    26 avril 2013, par HighFlyingFantasy

    I'm trying to write a wrapper class for FFMPEG. I have 4 classes within the wrapper, Stream, Demux, Encode, Decode. All of these classes use avcodec, avformat, etc. My question is, can I use the avcodec_register_all, av_register_all and avformat_network_init in my top level wrapper after initializing the lower level classes, or should I call each one individually in the lower level init methods ?

  • Streaming video from an image using FFMPEG on Windows

    26 mai 2013, par Daniel Zohar

    I wrote a program that simulates a camera and converts the output into a video stream. The program is required to be able to run on Windows.
    There are two components in the system :

    1. Camera Simulator. A C++ program that simulates the camera. It copies a pre-generated frame (i.e. PNG file) every 0.1 seconds, using the windows copy command, to a destination path ./target/target_image.png
    2. Video Stream. Using FFmpeg, it creates a video stream out of the copied images. FFmpeg is ran with the following command :
      ffmpeg -loop 1 -i ./target/target_image.png -r 10 -vcodec mpeg4 -f mpegts udp://127.0.0.1:1234

    When running the whole thing together, it works fine for a few seconds until the ffmpeg halts. Here is a log while running in debug mode :

    ffmpeg version N-52458-gaa96439 Copyright (c) 2000-2013 the FFmpeg developers
     built on Apr 24 2013 22:19:32 with gcc 4.8.0 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
     libavutil      52. 27.101 / 52. 27.101
     libavcodec     55.  6.100 / 55.  6.100
     libavformat    55.  3.100 / 55.  3.100
     libavdevice    55.  0.100 / 55.  0.100
     libavfilter     3. 60.101 /  3. 60.101
     libswscale      2.  2.100 /  2.  2.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Splitting the commandline.
    Reading option '-loop' ... matched as AVOption 'loop' with argument '1'.
    Reading option '-i' ... matched as input file with argument './target/target_image.png'.
    Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '10'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'mpeg4'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'mpegts'.
    Reading option 'udp://127.0.0.1:1234' ... matched as output file.
    Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option loglevel (set logging level) with argument debug.
    Successfully parsed a group of options.
    Parsing a group of options: input file ./target/target_image.png.
    Successfully parsed a group of options.
    Opening an input file: ./target/target_image.png.
    [AVIOContext @ 02678840] Statistics: 234307 bytes read, 0 seeks
    [AVIOContext @ 02678840] Statistics: 221345 bytes read, 0 seeks
       Last message repeated 1 times
    [AVIOContext @ 02678840] Statistics: 226329 bytes read, 0 seeks
       Last message repeated 2 times
    [AVIOContext @ 02678840] Statistics: 228676 bytes read, 0 seeks
       Last message repeated 2 times
    [AVIOContext @ 02678840] Statistics: 230685 bytes read, 0 seeks
       Last message repeated 2 times
    [AVIOContext @ 02678840] Statistics: 232697 bytes read, 0 seeks
       Last message repeated 5 times
    [AVIOContext @ 02678840] Statistics: 234900 bytes read, 0 seeks
       Last message repeated 2 times
    [AVIOContext @ 02678840] Statistics: 236847 bytes read, 0 seeks
    [image2 @ 02677ac0] Probe buffer size limit of 5000000 bytes reached
    Input #0, image2, from './target/target_image.png':
     Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
       Stream #0:0, 22, 1/25: Video: png, rgb24, 1274x772 [SAR 1:1 DAR 637:386], 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Successfully opened the file.
    Parsing a group of options: output file udp://127.0.0.1:1234.
    Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 10.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument mpeg4.
    Applying option f (force format) with argument mpegts.
    Successfully parsed a group of options.
    Opening an output file: udp://127.0.0.1:1234.
    Successfully opened the file.
    [graph 0 input from stream 0:0 @ 02769280] Setting 'video_size' to value '1274x772'
    [graph 0 input from stream 0:0 @ 02769280] Setting 'pix_fmt' to value '2'
    [graph 0 input from stream 0:0 @ 02769280] Setting 'time_base' to value '1/25'
    [graph 0 input from stream 0:0 @ 02769280] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 0:0 @ 02769280] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 0:0 @ 02769280] Setting 'frame_rate' to value '25/1'
    [graph 0 input from stream 0:0 @ 02769280] w:1274 h:772 pixfmt:rgb24 tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2
    [format @ 02768ba0] compat: called with args=[yuv420p]
    [format @ 02768ba0] Setting 'pix_fmts' to value 'yuv420p'
    [auto-inserted scaler 0 @ 02768740] Setting 'w' to value '0'
    [auto-inserted scaler 0 @ 02768740] Setting 'h' to value '0'
    [auto-inserted scaler 0 @ 02768740] Setting 'flags' to value '0x4'
    [auto-inserted scaler 0 @ 02768740] w:0 h:0 flags:'0x4' interl:0
    [format @ 02768ba0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format'
    [AVFilterGraph @ 026772c0] query_formats: 4 queried, 3 merged, 1 already done, 0 delayed
    [auto-inserted scaler 0 @ 02768740] w:1274 h:772 fmt:rgb24 sar:1/1 -> w:1274 h:772 fmt:yuv420p sar:1/1 flags:0x4
    [mpeg4 @ 02785020] detected 4 logical cores
    [mpeg4 @ 02785020] intra_quant_bias = 0 inter_quant_bias = -64
    [mpegts @ 0277da40] muxrate VBR, pcr every 1 pkts, sdt every 200, pat/pmt every 40 pkts
    Output #0, mpegts, to 'udp://127.0.0.1:1234':
     Metadata:
       encoder         : Lavf55.3.100
       Stream #0:0, 0, 1/90000: Video: mpeg4, yuv420p, 1274x772 [SAR 1:1 DAR 637:386], 1/10, q=2-31, 200 kb/s, 90k tbn, 10 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (png -> mpeg4)
    Press [q] to stop, [?] for help
    *** drop!
       Last message repeated 10 times
    frame=   11 fps=0.0 q=4.0 size=     118kB time=00:00:01.10 bitrate= 875.1kbits/s dup=0 drop=11    
    Statistics: 242771 bytes read, 0 seeks
    [AVIOContext @ 02674a60] Statistics: 246525 bytes read, 0 seeks
    *** drop!
    [AVIOContext @ 02674a60] Statistics: 230678 bytes read, 0 seeks
    [AVIOContext @ 02674a60] Statistics: 244023 bytes read, 0 seeks
    *** drop!
    [AVIOContext @ 02674a60] Statistics: 246389 bytes read, 0 seeks

    *** drop!
    [AVIOContext @ 02674a60] Statistics: 224478 bytes read, 0 seeks
    [AVIOContext @ 02674a60] Statistics: 228013 bytes read, 0 seeks
    *** drop!
    [image2 @ 02677ac0] Could not open file : ./target/target_image.png
    ./target/target_image.png: Input/output error
    [output stream 0:0 @ 02768c20] EOF on sink link output stream 0:0:default.
    No more output streams to write to, finishing.
    frame=  164 fps= 17 q=31.0 Lsize=     959kB time=00:00:16.40 bitrate= 478.9kbits/s dup=0 drop=240    

    video:869kB audio:0kB subtitle:0 global headers:0kB muxing overhead 10.285235%
    404 frames successfully decoded, 0 decoding errors
    [AVIOContext @ 026779c0] Statistics: 0 seeks, 746 writeouts

    It seems to me there's some kind of collision between the reading and writing to/from the same file. What's also interesting is that on Linux (while replacing the copy with cp) the program works just fine.

    Can someone suggest a way to solve this issue ? Alternatives solutions are also acceptable as long as the logical workflow remains the same.

  • ffmpeg video stitching error (error while opening decoder...)

    24 mai 2013, par Revoluzifer

    I'm trying to stitch nine videos into one grid using this command :

    /usr/local/bin/ffmpeg -loglevel debug
    -i ./woohoo/7_video.mp4 -i ./woohoo/5_video.mp4 -i ./woohoo/6_video.mp4
    -i ./woohoo/2_video.mp4 -i ./woohoo/8_video.mp4 -i ./woohoo/0_video.mp4
    -i ./woohoo/3_video.mp4 -i ./woohoo/1_video.mp4 -i ./woohoo/10_video.mp4
    -filter_complex "
       [0:0]pad=iw:ih[a];[1:0]scale=w=iw/4:h=ih/4[b];[2:0]scale=w=iw/4:h=ih/4[c];
       [3:0]scale=w=iw/4:h=ih/4[d];[4:0]scale=w=iw/4:h=ih/4[e];
       [5:0]scale=w=iw/4:h=ih/4[f];[6:0]scale=w=iw/4:h=ih/4[g];
       [7:0]scale=w=iw/4:h=ih/4[h];[8:0]scale=w=iw/4:h=ih/4[i];
       [0:0]scale=w=iw/4:h=ih/4[j];
       [a][b]overlay=0*w:0*h[k];[k][c]overlay=1*w:0*h[l];[l][d]overlay=2*w:0*h[m];
       [m][e]overlay=0*w:1*h[n];[n][f]overlay=1*w:1*h[o];[o][g]overlay=2*w:1*h[p];
       [p][h]overlay=0*w:2*h[q];[q][i]overlay=1*w:2*h[r];[r][j]overlay=2*w:2*h
       "
    -c:v libx264 -an -r 30 -q:v 0 -threads 0 ./woohoo/10_video_out.mp4

    I'm running Ubuntu 10.04 LTS

    The complete output given by ffmpeg looks like this :

    ffmpeg version N-52943-g500220a Copyright (c) 2000-2013 the FFmpeg developers
     built on May 23 2013 16:44:21 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
     configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib
     libavutil      52. 30.100 / 52. 30.100
     libavcodec     55.  7.100 / 55.  7.100
     libavformat    55.  4.101 / 55.  4.101
     libavdevice    55.  0.100 / 55.  0.100
     libavfilter     3. 63.101 /  3. 63.101
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Splitting the commandline.

    (...)

    Successfully parsed a group of options.
    Parsing a group of options: input file ./woohoo/7_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/7_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2919e20] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2919e20] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2919e20] File position before avformat_find_stream_info() is 969848
    [h264 @ 0x291aa80] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2919e20] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2919e20] File position after avformat_find_stream_info() is 19245
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/7_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:14.93, start: 0.000000, bitrate: 519 kb/s
       Stream #0:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 516 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/5_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/5_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x291f580] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x291f580] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x291f580] File position before avformat_find_stream_info() is 990829
    [h264 @ 0x2920340] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x291f580] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x291f580] File position after avformat_find_stream_info() is 15914
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/5_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:14.93, start: 0.000000, bitrate: 530 kb/s
       Stream #1:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 528 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/6_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/6_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2921aa0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2921aa0] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2921aa0] File position before avformat_find_stream_info() is 709220
    [h264 @ 0x2935f60] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2921aa0] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2921aa0] File position after avformat_find_stream_info() is 22467
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/6_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:15.00, start: 0.000000, bitrate: 378 kb/s
       Stream #2:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 375 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/2_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/2_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29ad800] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29ad800] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29ad800] File position before avformat_find_stream_info() is 928241
    [h264 @ 0x29b1040] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29ad800] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29ad800] File position after avformat_find_stream_info() is 28508
    Input #3, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/2_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:14.87, start: 0.000000, bitrate: 499 kb/s
       Stream #3:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 496 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/8_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/8_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29b2f00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29b2f00] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29b2f00] File position before avformat_find_stream_info() is 1038553
    [h264 @ 0x29b3cc0] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29b2f00] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x29b2f00] File position after avformat_find_stream_info() is 20282
    Input #4, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/8_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:15.03, start: 0.000000, bitrate: 552 kb/s
       Stream #4:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 549 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/0_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/0_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2a30f20] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2a30f20] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2a30f20] File position before avformat_find_stream_info() is 1158061
    [h264 @ 0x2a318e0] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2a30f20] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2a30f20] File position after avformat_find_stream_info() is 19639
    Input #5, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/0_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:15.03, start: 0.000000, bitrate: 616 kb/s
       Stream #5:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 614 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/3_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/3_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac6ba0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac6ba0] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac6ba0] File position before avformat_find_stream_info() is 1102892
    [h264 @ 0x2ab4f00] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac6ba0] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ac6ba0] File position after avformat_find_stream_info() is 22585
    Input #6, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/3_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:15.03, start: 0.000000, bitrate: 586 kb/s
       Stream #6:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 583 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/1_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/1_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ab6b20] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ab6b20] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ab6b20] File position before avformat_find_stream_info() is 933389
    [h264 @ 0x2ad7d80] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ab6b20] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ab6b20] File position after avformat_find_stream_info() is 20610
    Input #7, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/1_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:14.97, start: 0.000000, bitrate: 498 kb/s
       Stream #7:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 495 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: input file ./woohoo/10_video.mp4.
    Successfully parsed a group of options.
    Opening an input file: ./woohoo/10_video.mp4.
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ad9ac0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ad9ac0] ISO: File Type Major Brand: isom
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ad9ac0] File position before avformat_find_stream_info() is 933355
    [h264 @ 0x2ada4a0] no picture
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ad9ac0] All info found
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2ad9ac0] File position after avformat_find_stream_info() is 21283
    Input #8, mov,mp4,m4a,3gp,3g2,mj2, from './woohoo/10_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
     Duration: 00:00:15.03, start: 0.000000, bitrate: 496 kb/s
       Stream #8:0(und), 1, 1/15360: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/60, 493 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
       Metadata:
         handler_name    : VideoHandler
    Successfully opened the file.
    Parsing a group of options: output file ./woohoo/10_video_out.mp4.
    Applying option c:v (codec name) with argument libx264.
    Applying option an (disable audio) with argument 1.
    Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 30.
    Applying option q:v (use fixed quality scale (VBR)) with argument 0.
    Successfully parsed a group of options.
    Opening an output file: ./woohoo/10_video_out.mp4.
    [Parsed_pad_0 @ 0x2cb42a0] Setting 'width' to value 'iw'
    [Parsed_pad_0 @ 0x2cb42a0] Setting 'height' to value 'ih'
    [Parsed_scale_1 @ 0x2cb58a0] Setting 'w' to value 'iw/4'
    [Parsed_scale_1 @ 0x2cb58a0] Setting 'h' to value 'ih/4'
    [Parsed_scale_1 @ 0x2cb58a0] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_2 @ 0x2cb6a60] Setting 'w' to value 'iw/4'
    [Parsed_scale_2 @ 0x2cb6a60] Setting 'h' to value 'ih/4'
    [Parsed_scale_2 @ 0x2cb6a60] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_3 @ 0x2cb7920] Setting 'w' to value 'iw/4'
    [Parsed_scale_3 @ 0x2cb7920] Setting 'h' to value 'ih/4'
    [Parsed_scale_3 @ 0x2cb7920] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_4 @ 0x2cb8580] Setting 'w' to value 'iw/4'
    [Parsed_scale_4 @ 0x2cb8580] Setting 'h' to value 'ih/4'
    [Parsed_scale_4 @ 0x2cb8580] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_5 @ 0x2d2f0c0] Setting 'w' to value 'iw/4'
    [Parsed_scale_5 @ 0x2d2f0c0] Setting 'h' to value 'ih/4'
    [Parsed_scale_5 @ 0x2d2f0c0] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_6 @ 0x2d302a0] Setting 'w' to value 'iw/4'
    [Parsed_scale_6 @ 0x2d302a0] Setting 'h' to value 'ih/4'
    [Parsed_scale_6 @ 0x2d302a0] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_7 @ 0x2d31060] Setting 'w' to value 'iw/4'
    [Parsed_scale_7 @ 0x2d31060] Setting 'h' to value 'ih/4'
    [Parsed_scale_7 @ 0x2d31060] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_8 @ 0x2d31d60] Setting 'w' to value 'iw/4'
    [Parsed_scale_8 @ 0x2d31d60] Setting 'h' to value 'ih/4'
    [Parsed_scale_8 @ 0x2d31d60] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_scale_9 @ 0x2d32c60] Setting 'w' to value 'iw/4'
    [Parsed_scale_9 @ 0x2d32c60] Setting 'h' to value 'ih/4'
    [Parsed_scale_9 @ 0x2d32c60] w:iw/4 h:ih/4 flags:'bilinear' interl:0
    [Parsed_overlay_10 @ 0x2cb69a0] Setting 'x' to value '0*w'
    [Parsed_overlay_10 @ 0x2cb69a0] Setting 'y' to value '0*h'
    [Parsed_overlay_11 @ 0x2cb6420] Setting 'x' to value '1*w'
    [Parsed_overlay_11 @ 0x2cb6420] Setting 'y' to value '0*h'
    [Parsed_overlay_12 @ 0x2d2ee20] Setting 'x' to value '2*w'
    [Parsed_overlay_12 @ 0x2d2ee20] Setting 'y' to value '0*h'
    [Parsed_overlay_13 @ 0x2cb7220] Setting 'x' to value '0*w'
    [Parsed_overlay_13 @ 0x2cb7220] Setting 'y' to value '1*h'
    [Parsed_overlay_14 @ 0x2d322e0] Setting 'x' to value '1*w'
    [Parsed_overlay_14 @ 0x2d322e0] Setting 'y' to value '1*h'
    [Parsed_overlay_15 @ 0x2d2fba0] Setting 'x' to value '2*w'
    [Parsed_overlay_15 @ 0x2d2fba0] Setting 'y' to value '1*h'
    [Parsed_overlay_16 @ 0x2cb83a0] Setting 'x' to value '0*w'
    [Parsed_overlay_16 @ 0x2cb83a0] Setting 'y' to value '2*h'
    [Parsed_overlay_17 @ 0x2cb8480] Setting 'x' to value '1*w'
    [Parsed_overlay_17 @ 0x2cb8480] Setting 'y' to value '2*h'
    [Parsed_overlay_18 @ 0x2d30d80] Setting 'x' to value '2*w'
    [Parsed_overlay_18 @ 0x2d30d80] Setting 'y' to value '2*h'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 0:0 @ 0x2d36880] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 0:0 @ 0x2d36880] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 1:0 @ 0x2d2e780] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 1:0 @ 0x2d2e780] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 2:0 @ 0x2cb4d40] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 3:0 @ 0x2d318e0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 3:0 @ 0x2d318e0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 4:0 @ 0x2cb60c0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 5:0 @ 0x2d2f9e0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 6:0 @ 0x2d33380] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 6:0 @ 0x2d33380] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 7:0 @ 0x2cb55c0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 8:0 @ 0x2d34ae0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'video_size' to value '640x360'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'time_base' to value '1/15360'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'pixel_aspect' to value '1/1'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 0:0 @ 0x2d2f8e0] w:640 h:360 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:1/1 sws_param:flags=2
    [format @ 0x2d382c0] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuv444p]
    [format @ 0x2d382c0] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuv444p'
    Successfully opened the file.
    [AVFilterGraph @ 0x2cb0e80] query_formats: 31 queried, 30 merged, 0 already done, 0 delayed
    [Parsed_pad_0 @ 0x2cb42a0] w:640 h:360 -> w:640 h:360 x:0 y:0 color:0x000000FF
    [Parsed_scale_1 @ 0x2cb58a0] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_10 @ 0x2cb69a0] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_2 @ 0x2cb6a60] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_11 @ 0x2cb6420] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_3 @ 0x2cb7920] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_12 @ 0x2d2ee20] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_4 @ 0x2cb8580] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_13 @ 0x2cb7220] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_5 @ 0x2d2f0c0] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_14 @ 0x2d322e0] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_6 @ 0x2d302a0] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_15 @ 0x2d2fba0] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_7 @ 0x2d31060] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_16 @ 0x2cb83a0] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_8 @ 0x2d31d60] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_17 @ 0x2cb8480] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [Parsed_scale_9 @ 0x2d32c60] w:640 h:360 fmt:yuv420p sar:1/1 -> w:160 h:90 fmt:yuva420p sar:1/1 flags:0x2
    [Parsed_overlay_18 @ 0x2d30d80] main w:640 h:360 fmt:yuv420p overlay w:160 h:90 fmt:yuva420p
    [libx264 @ 0x2d38ae0] using mv_range_thread = 24
    [libx264 @ 0x2d38ae0] using SAR=1/1
    [libx264 @ 0x2d38ae0] using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
    [libx264 @ 0x2d38ae0] profile High, level 3.0
    [libx264 @ 0x2d38ae0] 264 - core 132 r2310 76a5c3a - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options:  cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [h264 @ 0x291aa80] detected 8 logical cores
    [h264 @ 0x2920340] detected 8 logical cores
    [h264 @ 0x2935f60] detected 8 logical cores
    [h264 @ 0x29b1040] detected 8 logical cores
    [h264 @ 0x29b3cc0] detected 8 logical cores
    Output #0, mp4, to './woohoo/10_video_out.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.4.101
       Stream #0:0, 0, 1/90000: Video: h264, yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/30, q=-1--1, 90k tbn, 30 tbc
    Stream mapping:
     Stream #0:0 (h264) -> pad
     Stream #0:0 (h264) -> scale
     Stream #1:0 (h264) -> scale
     Stream #2:0 (h264) -> scale
     Stream #3:0 (h264) -> scale
     Stream #4:0 (h264) -> scale
     Stream #5:0 (h264) -> scale
     Stream #6:0 (h264) -> scale
     Stream #7:0 (h264) -> scale
     Stream #8:0 (h264) -> scale
     overlay -> Stream #0:0 (libx264)
    Error while opening decoder for input stream #4:0
    [AVIOContext @ 0x2d2fea0] Statistics: 0 seeks, 0 writeouts
    [AVIOContext @ 0x28dd8e0] Statistics: 71559 bytes read, 2 seeks
    [AVIOContext @ 0x291fae0] Statistics: 70647 bytes read, 2 seeks
    [AVIOContext @ 0x2931c40] Statistics: 71199 bytes read, 2 seeks
    [AVIOContext @ 0x2935e40] Statistics: 71399 bytes read, 2 seeks
    [AVIOContext @ 0x29b3480] Statistics: 71339 bytes read, 2 seeks
    [AVIOContext @ 0x2a2e180] Statistics: 69591 bytes read, 2 seeks
    [AVIOContext @ 0x2a317c0] Statistics: 71147 bytes read, 2 seeks
    [AVIOContext @ 0x2ab4de0] Statistics: 71363 bytes read, 2 seeks
    [AVIOContext @ 0x2c3ab00] Statistics: 71647 bytes read, 2 seeks

    The error line

    Error while opening decoder for input stream #4:0

    seems to be kind of random to me - at least the streams, ffmpeg fails on changes from time to time.