Recherche avancée

Médias (91)

Autres articles (28)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (4520)

  • How to use ffmpeg in JavaScript to decode H.264 frames into RGB frames

    17 juin 2020, par noel

    I'm trying to compile ffmpeg into javascript so that I can decode H.264 video streams using node. The streams are H.264 frames packed into RTP NALUs so any solution has to be able to accept H.264 frames rather than a whole file name. These frames can't be in a container like MP4 or AVI because then the demuxer needs to needs the timestamp of every frame before demuxing can occur, but I'm dealing with a real time stream, no containers.

    



    Streaming H.264 over RTP

    



    Below is the basic code I'm using to listen on a udp socket. Inside the 'message' callback the data packet is an RTP datagram. The data portion of the data gram is an H.264 frame (P-frames and I-frames).

    



    var PORT = 33333;
var HOST = '127.0.0.1';

var dgram = require('dgram');
var server = dgram.createSocket('udp4');

server.on('listening', function () {
    var address = server.address();
    console.log('UDP Server listening on ' + address.address + ":" + address.port);
});

server.on('message', function (message, remote) {
    console.log(remote.address + ':' + remote.port +' - ' + message);
    frame = parse_rtp(message);

    rgb_frame = some_library.decode_h264(frame); // This is what I need.

});

server.bind(PORT, HOST);  


    



    I found the Broadway.js library, but I couldn't get it working and it doesn't handle P-frames which I need. I also found ffmpeg.js, but could get that to work and it needs a whole file not a stream. Likewise, fluent-ffmpeg doesn't appear to support file streams ; all of the examples show a filename being passed to the constructor. So I decided to write my own API.

    



    My current solution attempt

    



    I have been able to compile ffmpeg into one big js file, but I can't use it like that. I want to write an API around ffmpeg and then expose those functions to JS. So it seems to me like I need to do the following :

    



      

    1. Compile ffmpeg components (avcodec, avutil, etc.) into llvm bitcode.
    2. 


    3. Write a C wrapper that exposes the decoding functionality and uses EMSCRIPTEN_KEEPALIVE.
    4. 


    5. Use emcc to compile the wrapper and link it to the bitcode created in step 1.
    6. 


    



    I found WASM+ffmpeg, but it's in Chinese and some of the steps aren't clear. In particular there is this step :

    



    emcc web.c process.c ../lib/libavformat.bc ../lib/libavcodec.bc ../lib/libswscale.bc ../lib/libswresample.bc ../lib/libavutil.bc \


    



     :( Where I think I'm stuck

    



    I don't understand how all the ffmpeg components get compiled into separate *.bc files. I followed the emmake commands in that article and I end up with one big .bc file.

    



    2 questions

    



    1. Does anyone know the steps to compile ffmpeg using emscripten so that I can expose some API to javascript ?
    
 2. Is there a better way (with decent documentation/examples) to decode h264 video streams using node ?

    


  • Anomalie #4747 (Nouveau) : Notices PHP sur ?exec=auteur

    27 avril 2021

    J’ai ces notices (sur 3.3 dev)

    1. <span class="CodeRay"><span class="label">Warning</span>: <span class="constant">Undefined</span> <span class="predefined">array</span> <span class="predefined">key</span> <span class="string"><span class="delimiter">"</span><span class="content">nom</span><span class="delimiter">"</span></span> inecrire/<span class="keyword">public</span>/jointures.php on line <span class="integer">162</span>
    2. <span class="constant">Warning</span>: <span class="constant">Undefined</span> <span class="predefined">array</span> <span class="predefined">key</span> <span class="string"><span class="delimiter">"</span><span class="content">gram</span><span class="delimiter">"</span></span> in ecrire/<span class="keyword">public</span>/jointures.php on line <span class="integer">162</span>
    3. </span>

    Télécharger

    Ceci provient de objet_test_si_publie() dans objet_modifier().
    Celui ci

    - crée une Boucle sans déclarer de ->desc,
    - appele instituer_boucle()
    - qui appelle fabrique_jointures()
    - qui teste $cpt = &#38;$num[$boucle->descr['nom']][$boucle->descr['gram']][$boucle->id_boucle];

  • Displaying 25 inputs into a 5x5 grid using -ffmpeg- with the correct layout code

    1er septembre 2021, par Clive Nicholas

    I'm now looking to expand the 4x4 code very helpfully provided by @llogan yesterday into one taking 25 different and equally-scaled audio and video inputs to make a 5x5 grid (at which point, I'll stop) :

    &#xA;

    ffmpeg -i a.mp4 -i b.mp4 -i c.mp4 -i d.mp4 -i e.mp4 -i f.mp4 -i g.mp4 -i h.mp4 -i i.mp4 -i j.mp4 -i k.mp4 -i l.mp4 -i m.mp4 -i n.mp4 -i o.mp4 -i p.mp4 -i q.mp4 -i r.mp4 -i s.mp4 -i t.mp4 -i u.mp4 -i v.mp4 -i w.mp4 -i x.mp4 -i y.mp4 \&#xA; -filter_complex \&#xA;    "[0:v]scale=iw/5:-1[v0];[1:v]scale=iw/5:-1[v1];[2:v]scale=iw/5:-1[v2]; \ &#xA;     [3:v]scale=iw/5:-1[v3];[4:v]scale=iw/5:-1[v4];[5:v]scale=iw/5:-1[v5]; \ &#xA;     [6:v]scale=iw/5:-1[v6];[7:v]scale=iw/5:-1[v7];[8:v]scale=iw/5:-1[v8]; \ &#xA;     [9:v]scale=iw/5:-1[v9];[10:v]scale=iw/5:-1[v10];[11:v]scale=iw/5:-1[v11]; \&#xA;     [12:v]scale=iw/5:-1[v12];[13:v]scale=iw/5:-1[v13];[14:v]scale=iw/5:-1[v14]; \&#xA;     [15:v]scale=iw/5:-1[v15];[16:v]scale=iw/5:-1[v16];[17:v]scale=iw/5:-1[v17]; \ &#xA;     [18:v]scale=iw/5:-1[v18];[19:v]scale=iw/5:-1[v19];[20:v]scale=iw/5:-1[v20]; \&#xA;     [21:v]scale=iw/5:-1[v21];[22:v]scale=iw/5:-1[v22];[23:v]scale=iw/5:-1[v23]; \ &#xA;     [24:v]scale=iw/5:-1[v24]; \&#xA;     [v0][v1][v2][v3][v4][v5][v6][v7][v8][v9][v10][v11][v12][v13][v14][v15][v16][v17][v18][v19][v20][v21][v22][v23][v24]xstack=inputs=25:layout=0_0|0_h0|0_h0&#x2B;h1|0_h0&#x2B;h1&#x2B;h2|0_h0&#x2B;h1&#x2B;h2&#x2B;h3|w0_0|w0_h0|w0_h0&#x2B;h1|w0_h0&#x2B;h1&#x2B;h2|w0_h0&#x2B;h1&#x2B;h2&#x2B;h3|w0&#x2B;w4_0|w0&#x2B;w4_h0|w0&#x2B;w4_h0&#x2B;h1|w0&#x2B;w4_h0&#x2B;h1&#x2B;h2|w0&#x2B;w4_h0&#x2B;h1&#x2B;h2&#x2B;h3|w0&#x2B;w4&#x2B;w8_0|w0&#x2B;w4&#x2B;w8_h0|w0&#x2B;w4&#x2B;w8_h0&#x2B;h1|w0&#x2B;w4&#x2B;w8_h0&#x2B;h1&#x2B;h2|w0&#x2B;w4&#x2B;w8_h0&#x2B;h1&#x2B;h2&#x2B;h3|w0&#x2B;w4&#x2B;w8&#x2B;w12_0|w0&#x2B;w4&#x2B;w8&#x2B;w12_h0|w0&#x2B;w4&#x2B;w8&#x2B;w12_h0&#x2B;h1|w0&#x2B;w4&#x2B;w8&#x2B;w12_h0&#x2B;h1&#x2B;h2|w0&#x2B;w4&#x2B;w8&#x2B;w12_h0&#x2B;h1&#x2B;h2&#x2B;h3; \&#xA;     [0:a][1:a][2:a][3:a][4:a][5:a][6:a][7:a][8:a][9:a][10:a][11:a][12:a][13:a][14:a][15:a][16:a][17:a][18:a][19:a][20:a][21:a][22:a][23:a][24:a]amix=inputs=25" \&#xA;output.mp4&#xA;

    &#xA;

    Unfortunately, this produces errors :

    &#xA;

    ffmpeg version 4.3.2-0&#x2B;deb11u1ubuntu1 Copyright (c) 2000-2021 the FFmpeg developers&#xA;  built with gcc 10 (Ubuntu 10.2.1-20ubuntu1)&#xA;  configuration: --prefix=/usr --extra-version=0&#x2B;deb11u1ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;  WARNING: library configuration mismatch&#xA;  avcodec     configuration: --prefix=/usr --extra-version=0&#x2B;deb11u1ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc&#xA;  libavutil      56. 51.100 / 56. 51.100&#xA;  libavcodec     58. 91.100 / 58. 91.100&#xA;  libavformat    58. 45.100 / 58. 45.100&#xA;  libavdevice    58. 10.100 / 58. 10.100&#xA;  libavfilter     7. 85.100 /  7. 85.100&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  7.100 /  5.  7.100&#xA;  libswresample   3.  7.100 /  3.  7.100&#xA;  libpostproc    55.  7.100 / 55.  7.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;abc.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 248 kb/s&#xA;    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 41 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 193 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #1, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;ang.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:10.00, start: 0.000000, bitrate: 480 kb/s&#xA;    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 271 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #2, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;ard.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 256 kb/s&#xA;    Stream #2:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 49 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 193 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #3, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;atv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:17.00, start: 0.000000, bitrate: 259 kb/s&#xA;    Stream #3:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 53 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #3:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 193 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #4, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;bor.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 255 kb/s&#xA;    Stream #4:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 48 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #4:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #5, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;cen.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:07.00, start: 0.000000, bitrate: 461 kb/s&#xA;    Stream #5:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 250 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #5:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 196 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #6, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;cha.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:05.00, start: 0.000000, bitrate: 267 kb/s&#xA;    Stream #6:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 59 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #6:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #7, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;grad.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:05.01, start: 0.000000, bitrate: 246 kb/s&#xA;    Stream #7:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 39 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #7:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #8, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;gram.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 294 kb/s&#xA;    Stream #8:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 86 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #8:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #9, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;htv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:12.01, start: 0.000000, bitrate: 238 kb/s&#xA;    Stream #9:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 29 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #9:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 196 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #10, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;its1.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:07.00, start: 0.000000, bitrate: 238 kb/s&#xA;    Stream #10:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 31 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #10:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #11, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;its2.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 241 kb/s&#xA;    Stream #11:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 34 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #11:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #12, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;lwt.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:10.00, start: 0.000000, bitrate: 239 kb/s&#xA;    Stream #12:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 30 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #12:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #13, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;sou.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 247 kb/s&#xA;    Stream #13:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 39 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #13:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #14, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;stv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 257 kb/s&#xA;    Stream #14:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 51 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #14:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #15, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tha.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:06.00, start: 0.000000, bitrate: 454 kb/s&#xA;    Stream #15:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 245 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #15:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #16, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tlc.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 275 kb/s&#xA;    Stream #16:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 67 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #16:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #17, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tsw.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:11.00, start: 0.000000, bitrate: 457 kb/s&#xA;    Stream #17:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 251 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #17:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #18, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;ttt.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:10.01, start: 0.000000, bitrate: 258 kb/s&#xA;    Stream #18:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 51 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #18:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 193 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #19, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tvam.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf57.82.100&#xA;  Duration: 00:00:11.31, start: 0.000000, bitrate: 383 kb/s&#xA;    Stream #19:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 352x288 [SAR 178:163 DAR 1958:1467], 251 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #19:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #20, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tvs.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:10.01, start: 0.000000, bitrate: 252 kb/s&#xA;    Stream #20:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 44 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #20:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #21, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;tww.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:09.00, start: 0.000000, bitrate: 277 kb/s&#xA;    Stream #21:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 69 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #21:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #22, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;utv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 443 kb/s&#xA;    Stream #22:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 234 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #22:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #23, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;wtv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 431 kb/s&#xA;    Stream #23:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 224 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #23:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 194 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #24, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;ytv.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.00, start: 0.000000, bitrate: 332 kb/s&#xA;    Stream #24:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 123 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #24:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;[AVFilterGraph @ 0x55ad3b4d4a00] No such filter: &#x27; &#x27;&#xA;Error initializing complex filters.&#xA;Invalid argument&#xA;

    &#xA;

    The layout code has now become extremely complex, but I've carefully followed the 4x4 example as given in the manual here and I don't think I'm doing much wrong. Breaking down and reordering the layout code I used above looks like this :

    &#xA;

    input1(0, 0)          | input6 (w0, 0)           | input11(w0&#x2B;w4, 0)          | input16(w0&#x2B;w4&#x2B;w8, 0)          | input21(w0&#x2B;w4&#x2B;w8&#x2B;w12, 0)&#xA;input2(0, h0)         | input7 (w0, h0)          | input12(w0&#x2B;w4, h0)         | input17(w0&#x2B;w4&#x2B;w8, h0)         | input22(w0&#x2B;w4&#x2B;w8&#x2B;w12, h0)&#xA;input3(0, h0&#x2B;h1)      | input8 (w0, h0&#x2B;h1)       | input13(w0&#x2B;w4, h0&#x2B;h1)      | input18(w0&#x2B;w4&#x2B;w8, h0&#x2B;h1)      | input23(w0&#x2B;w4&#x2B;w8&#x2B;w12, h0&#x2B;h1)&#xA;input4(0, h0&#x2B;h1&#x2B;h2)   | input9 (w0, h0&#x2B;h1&#x2B;h2)    | input14(w0&#x2B;w4, h0&#x2B;h1&#x2B;h2)   | input19(w0&#x2B;w4&#x2B;w8, h0&#x2B;h1&#x2B;h2)   | input24(w0&#x2B;w4&#x2B;w8&#x2B;w12, h0&#x2B;h1&#x2B;h2)&#xA;input5(0, h0&#x2B;h1&#x2B;h2&#x2B;h3)| input10(w0, h0&#x2B;h1&#x2B;h2&#x2B;h3) | input15(w0&#x2B;w4, h0&#x2B;h1&#x2B;h2&#x2B;h3)| input20(w0&#x2B;w4&#x2B;w8, h0&#x2B;h1&#x2B;h2&#x2B;h3)| input25(w0&#x2B;w4&#x2B;w8&#x2B;w12, h0&#x2B;h1&#x2B;h2&#x2B;h3)&#xA;

    &#xA;

    To my mind, w12 and h3 would logically be the next set of width and height parameters to add on in order to make the grid expansion from 4x4 to 5x5 work. Is that what's causing the code to choke ? If it's not this, it's not obvious to me what it might be, as I've checked the whole code as thoroughly as possible.

    &#xA;

    Once again, I'll be very grateful for your assistance.

    &#xA;

    Thanks very much, Clive

    &#xA;