Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (111)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

Sur d’autres sites (6592)

  • ffmpeg conversion executable file output ".MOD : no files in such directory"

    11 octobre 2023, par Zezaps

    I installed ffmpeg using Homebrew in macOS 12.2. I have a folder of MOD files from an old camera that I need to convert to MOV or MP4 to edit them, I have a .bat file in my Windows machine that I can run on a folder that has MOD files to batch convert them to MP4 or MOV that I can easily tweak but I'm kinda clueless with how to do this on my new (and first) Mac, I came across this script that I managed to use once through the terminal but tried putting it in a executable file so I can easily run it and copy it in every folder that I need to for new projects. When I created the exec file I'm not sure if I did it correctly though.

    


    for i in *.MOD;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
  ffmpeg -i "$i" "${name}.MOV"
done


    


    This script is inside an exec file that I edited using TextEdit, it works sometimes if I go to the directory through the terminal and run it but if I run it double clicking it I get a ".MOD : Not such file or directory" even though I placed the exec on a folder that has multiple .MOD files.

    


    Here is the full terminal output

    


    Last login: Sat Apr 23 20:00:38 on ttys001
/Users/anwar/Movies/FILMS/ANWAR/BLUE/old/batmodmp4 ; exit;
anwar@MacBook-Pro-de-Anwar ~ % /Users/anwar/Movies/FILMS/ANWAR/BLUE/old/batmodmp4 ; exit;
*
ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 13.0.0 (clang-1300.0.29.30)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
*.MOD: No such file or directory

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.


    


  • Undefined variable PHP uploader video

    23 avril 2022, par i0x4r

    I have a problem !
I found a code to upload a high quality video on my server

    


    using : ffmpeg, dropzone, php

    


    But it has a big problem !

    


    I want after the video upload to the server is completed, a phrase appears with the file name and path
But it does not do this work, and in the report it appears that Undefined variable
this :

    


    [23-Apr-2022 12:46:46 Asia/Riyadh] PHP Notice:  Undefined variable: location in /home/userme134/public_html/SUP/test8/upload.php on line 21
[23-Apr-2022 12:48:17 Asia/Riyadh] PHP Notice:  Undefined variable: location in /home/userme134/public_html/SUP/test8/upload.php on line 21
[23-Apr-2022 12:51:39 Asia/Riyadh] PHP Notice:  Undefined variable: location in /home/userme134/public_html/SUP/test8/upload.php on line 21
[23-Apr-2022 12:52:12 Asia/Riyadh] PHP Notice:  Undefined variable: location in /home/userme134/public_html/SUP/test8/upload.php on line 21


    


    index.php

    


    &#xA;&#xA; &#xA;  &#xA;  &#xA;  <code class="echappe-js">&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js&quot;&gt;&lt;/script&gt;&#xA;        &lt;script src=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js&quot;&gt;&lt;/script&gt;        &#xA;  &#xA;  &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/dropzone.js&quot;&gt;&lt;/script&gt;&#xA;  &#xA; &#xA; &#xA;  
    &#xA;
    &#xA;

    Video Uploader

    &#xA;
    &#xA; &#xA;

    &#xA;&#xA;

    &#xA; &#xA; &#xA; &#xA;
    &#xA;
    &#xA;

    &#xA;
    &#xA;
    &#xA;

    &#xA; &#xA;&#xA;&#xA;&lt;script&gt;&amp;#xA;&amp;#xA;$(document).ready(function(){&amp;#xA; &amp;#xA; Dropzone.options.dropzoneFrom = {&amp;#xA;  autoProcessQueue: true,&amp;#xA;  timeout: 300000,&amp;#xA;  acceptedFiles:&quot;video/*&quot;,&amp;#xA;  init: function(){&amp;#xA;&amp;#xA;   this.on(&quot;complete&quot;, function(){&amp;#xA;    if(this.getQueuedFiles().length == 0 &amp;amp;&amp;amp; this.getUploadingFiles().length == 0)&amp;#xA;    {&amp;#xA;     var _this = this;&amp;#xA;     _this.removeAllFiles();&amp;#xA;    }&amp;#xA;    viewResult();&amp;#xA;   });&amp;#xA;  },&amp;#xA; };&amp;#xA;&amp;#xA; function viewResult()&amp;#xA; {&amp;#xA;  $.ajax({&amp;#xA;   url:&quot;upload.php&quot;,&amp;#xA;   success:function(data){&amp;#xA;    $(&quot;#preview&quot;).html(data);&amp;#xA;   }&amp;#xA;  });&amp;#xA; }&amp;#xA;&amp;#xA; $(document).on(&amp;#x27;click&amp;#x27;, &amp;#x27;.remove_image&amp;#x27;, function(){&amp;#xA;  var name = $(this).attr(&amp;#x27;id&amp;#x27;);&amp;#xA;  $.ajax({&amp;#xA;   url:&quot;upload.php&quot;,&amp;#xA;   method:&quot;POST&quot;,&amp;#xA;   data:{name:name},&amp;#xA;   success:function(data)&amp;#xA;   {&amp;#xA;    list_image();&amp;#xA;   }&amp;#xA;  })&amp;#xA; });&amp;#xA; &amp;#xA;});&amp;#xA;&lt;/script&gt;&#xA;

    &#xA;

    upload.php

    &#xA;

    &lt;?php&#xA;&#xA;//upload.php&#xA;&#xA;$folder_name = &#x27;upload/&#x27;;&#xA;&#xA;if(!empty($_FILES))&#xA;{&#xA;&#xA; $temp_file = $_FILES[&#x27;file&#x27;][&#x27;tmp_name&#x27;];&#xA; $location = $folder_name . $_FILES[&#x27;file&#x27;][&#x27;name&#x27;];&#xA; move_uploaded_file($temp_file, $location);&#xA; $upload = $_FILES[&#x27;file&#x27;][&#x27;name&#x27;];&#xA; $uploadStr = str_replace(" ", "\ ",$upload);&#xA; $locationStr = str_replace(" ","\ ",$location);&#xA; $cmd  = "ffmpeg -y -i {$locationStr} -ss 00:00:15 -vframes 1 thumb/{$uploadStr}.png 2>&amp;1";&#xA; echo shell_exec($cmd);&#xA;}&#xA;&#xA;echo "Successfly Uploaded File is : ";&#xA;echo $location;&#xA;&#xA;?>&#xA;

    &#xA;

    enter image description here

    &#xA;

    I hope you can help me because I am tired of many useless attempts.

    &#xA;

  • Apostrophe issue with FFmpeg

    1er mars 2024, par Rohan Molinillo

    I'm working on a company's project which is vue.js.&#xA;There are also code parts in php.&#xA;It uses FFmpeg to create a video from multiple videos.&#xA;On each video, there is a text type subtitle.&#xA;Each text is retrieved from a .txt file&#xA;But I have a problem with apostrophes.

    &#xA;

    If in the subtitle is stored like this ( I'm here ) in the txt file, on the video there will be written ( Im ).&#xA;The apostrophe is removed and the rest of the text too ( here ) will not be displayed.

    &#xA;

    I'm new to php and ffmpeg, I've been on this problem for almost 3 weeks.

    &#xA;

    I share the php code with you.

    &#xA;

    &lt;?php&#xA;&#xA;declare(strict_types=1);&#xA;&#xA;array_shift($argv); // remove script name in $argv[0]&#xA;&#xA;$parameters = array_reduce($argv, function ($carry, $arg) {&#xA;    $tokens = explode(&#x27;=&#x27;, $arg);&#xA;    $carry[$tokens[0]] = $tokens[1];&#xA;    return $carry;&#xA;}, []);&#xA;&#xA;$projectPath = $parameters[&#x27;projectPath&#x27;];&#xA;$musicPath = $parameters[&#x27;musicPath&#x27;];&#xA;&#xA;$fontPath = getcwd() . "/public/fonts/cobol/Cobol-Bold.ttf";&#xA;$logoPath = getcwd() . "/public/images/saintex.jpg";&#xA;$carnetLogoPath = getcwd() . "/public/images/CarnetTitre.jpg";&#xA;&#xA;// Adding descriptions for each clip and fade in and fade out filters&#xA;$clipsToDescribe =  glob("$projectPath/*.webm");&#xA;$clipFrameRate = (int) shell_exec("cd $projectPath &amp;&amp; ffprobe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate $clipsToDescribe[0]");&#xA;$clipFrameRate = $clipFrameRate > 60 ? 30 : $clipFrameRate;&#xA;&#xA;foreach ($clipsToDescribe as $key => $clipToDescribe) {&#xA;    $clipIndex = $key &#x2B; 1;&#xA;    $clipFrames = (int) shell_exec("cd $projectPath &amp;&amp; ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 $clipToDescribe");&#xA;    $clipDuration = (float) ($clipFrames / $clipFrameRate) - 0.5;&#xA;    file_put_contents("$projectPath/clip{$clipIndex}_desc.txt", addslashes($parameters["clip{$clipIndex}_desc"]));&#xA;    shell_exec("cd $projectPath &amp;&amp; ffmpeg -i $clipToDescribe -vf &#x27;drawtext=fontfile=$fontPath: textfile=clip{$clipIndex}_desc.txt: fontcolor=white: fontsize=46: box=1: boxcolor=black@0.5: boxborderw=5: x=(w-text_w)/2: y=(h-text_h-50): fix_bounds=true, fade=t=in:st=0:d=0.3,fade=t=out:st=$clipDuration:d=0.3&#x27; -b:v 3000K -b:a 192K clip{$clipIndex}.webm");&#xA;}&#xA;array_map(&#x27;unlink&#x27;, glob("$projectPath/*desc.txt"));&#xA;&#xA;shell_exec("cd $projectPath &amp;&amp; ffmpeg -t 2 -f lavfi -i color=c=black:s=1280x720 -r 30 blank.webm");&#xA;shell_exec("cd $projectPath &amp;&amp; ffmpeg -i blank.webm -i $carnetLogoPath -filter_complex &#x27;[0:v][1:v] overlay=(main_w/2)-(overlay_w/2):(main_h/2)-(overlay_h/2)&#x27; -pix_fmt yuv420p -c:a copy logo.webm");&#xA;&#xA;&#xA;&#xA;$workshop = $parameters["workshop_type"];&#xA;$title = $parameters["title"];&#xA;shell_exec("cd $projectPath &amp;&amp; ffmpeg -f lavfi -i color=size=1280x720:duration=3:rate=30:color=black -vf &#x27;drawtext=text=$workshop:fontfile=$fontPath:fontcolor=white:fontsize=46:x=(w-text_w)/2:y=(h-text_h)/2, drawtext=text=$title:fontfile=$fontPath:fontcolor=white:fontsize=46:x=(w-text_w)/2:y=((h-text_h)/2)&#x2B;lh&#x2B;5&#x27; opening.webm");&#xA;unlink("$projectPath/blank.webm");&#xA;&#xA;$videosFile = "file &#x27;logo.webm&#x27;\n";&#xA;$videosFile .= "file &#x27;opening.webm&#x27;\n";{&#xA;    file_put_contents("$projectPath/project_desc.txt", $parameters["project_desc"]);&#xA;    shell_exec("cd $projectPath &amp;&amp; ffmpeg -f lavfi -i color=size=1280x720:duration=3:rate=30:color=black -vf &#x27;drawtext=fontfile=$fontPath:fontsize=46:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=project_desc.txt&#x27; project_desc.webm");&#xA;    unlink("$projectPath/project_desc.txt");&#xA;    $videosFile .= "file &#x27;project_desc.webm&#x27;\n";&#xA;} &#xA;if(array_key_exists("participants", $parameters)) {&#xA;    file_put_contents("$projectPath/participants.txt", "Participants :\n" . $parameters["participants"]);&#xA;    shell_exec("cd $projectPath &amp;&amp; ffmpeg -f lavfi -i color=size=1280x720:duration=2:rate=30:color=black -vf &#x27;drawtext=fontfile=$fontPath:fontsize=46:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=participants.txt&#x27; participants.webm");&#xA;    unlink("$projectPath/participants.txt");&#xA;}&#xA;&#xA;$videos =  glob("$projectPath/clip*.webm");&#xA;foreach($videos as $video) {&#xA;    if($video != "originalVideos") {&#xA;        $videosFile .= "file ". "&#x27;{$video}&#x27;\n";&#xA;    }&#xA;} &#xA;if(array_key_exists("participants", $parameters)) {&#xA;    $videosFile .= "file &#x27;$projectPath/participants.webm&#x27;";&#xA;}&#xA;array_map(&#x27;unlink&#x27;, glob("$projectPath/*webm.txt"));&#xA;file_put_contents("$projectPath/videosFile.txt", $videosFile);&#xA;if($musicPath == "/_musics/") {&#xA;    echo(shell_exec("cd $projectPath &amp;&amp; ffmpeg -f concat -safe 0 -i videosFile.txt -b:v 10000K -crf 20 -b:a 192K output.webm"));&#xA;} else {&#xA;    echo(shell_exec("cd $projectPath &amp;&amp; ffmpeg -f concat -safe 0 -i videosFile.txt -b:v 10000K -crf 20 -b:a 192K assembled.webm &amp;&amp; ffmpeg -i assembled.webm -i ../..$musicPath -filter_complex &#x27; [1:0] apad &#x27; -shortest -y -b:v 3000K -b:a 192K output.webm"));&#xA;}&#xA;

    &#xA;

    I tried many things but each time there were errors.&#xA;I think I didn't implement the code properly.

    &#xA;

    I share you the error

    &#xA;

            [09:21:02] RECEIVED EVENT: videoRequest&#xA;{ Error: Command failed: php ./public/src/generate.php projectPath=&#x27;/home/rohan/Documents/dodoc2/_projects/its-a-test&#x27; musicPath=&#x27;/_musics/classic.mp3&#x27; clip1_name=&#x27;&#x27; clip2_name=&#x27;&#x27; clip3_name=&#x27;&#x27; clip4_name=&#x27;&#x27; clip5_name=&#x27;&#x27; clip1_desc=&#x27;It&#x27;s a first test&#x27; clip2_desc=&#x27;It&#x27;s a second test&#x27; clip3_desc=&#x27;It&#x27;s a third test&#x27; clip4_desc=&#x27;It&#x27;s a fourth&#x27; clip5_desc=&#x27;It&#x27;s a last test&#x27; project_desc=&#x27;&#x27; workshop_type=&#x27;Atelier Robotique&#x27; title=&#x27;It&#x27;s a test&#x27; participants=&#x27;Molinillo Rohan&#xA;&#x27;&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;PHP Warning:  Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9&#xA;ffmpeg version 5.1.1-1ubuntu2.1 Copyright (c) 2000-2022 the FFmpeg developers&#xA;  built with gcc 12 (Ubuntu 12.2.0-3ubuntu1)&#xA;  configuration: --prefix=/usr --extra-version=1ubuntu2.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --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-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-shared&#xA;  libavutil      57. 28.100 / 57. 28.100&#xA;  libavcodec     59. 37.100 / 59. 37.100&#xA;  libavformat    59. 27.100 / 59. 27.100&#xA;  libavdevice    59.  7.100 / 59.  7.100&#xA;  libavfilter     8. 44.100 /  8. 44.100&#xA;  libswscale      6.  7.100 /  6.  7.100&#xA;  libswresample   4.  7.100 /  4.  7.100&#xA;  libpostproc    56.  6.100 / 56.  6.100&#xA;Input #0, matroska,webm, from &#x27;/home/rohan/Documents/dodoc2/_projects/its-a-test/video-20230404-091933-682.webm&#x27;:&#xA;  Metadata:&#xA;    encoder         : QTmuxingAppLibWebM-0.0.1&#xA;  Duration: N/A, start: -0.001000, bitrate: N/A&#xA;  Stream #0:0(eng): Video: vp8, yuv420p(progressive), 1280x720, SAR 1:1 DAR 16:9, 1k tbr, 1k tbn (default)&#xA;  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (vp8 (native) -> vp9 (libvpx-vp9))&#xA;  Stream #0:1 -> #0:1 (opus (native) -> opus (libopus))&#xA;Press [q] to stop, [?] for help&#xA;[libvpx-vp9 @ 0x55952c183000] v1.12.0&#xA;Output #0, webm, to &#x27;clip1.webm&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf59.27.100&#xA;  Stream #0:0(eng): Video: vp9, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 3000 kb/s, 1k fps, 1k tbn (default)&#xA;    Metadata:&#xA;      encoder         : Lavc59.37.100 libvpx-vp9&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&#xA;  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, flt, 192 kb/s (default)&#xA;    Metadata:&#xA;      encoder         : Lavc59.37.100 libopus&#xA;frame=  229 fps= 11 q=12.0 Lsize=    2786kB time=00:00:07.52 bitrate=3034.7kbits/s speed=0.377x    &#xA;video:2601kB audio:181kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.175036%&#xA;PHP Warning:  Undefined array key "clip2_desc" in /home/rohan/carnet-numerique/public/src/generate.php on line 29&#xA;PHP Fatal error:  Uncaught TypeError: addslashes(): Argument #1 ($string) must be of type string, null given in /home/rohan/carnet-numerique/public/src/generate.php:29&#xA;Stack trace:&#xA;#0 /home/rohan/carnet-numerique/public/src/generate.php(29): addslashes()&#xA;#1 {main}&#xA;  thrown in /home/rohan/carnet-numerique/public/src/generate.php on line 29&#xA;&#xA;    at ChildProcess.exithandler (child_process.js:275:12)&#xA;    at emitTwo (events.js:126:13)&#xA;    at ChildProcess.emit (events.js:214:7)&#xA;    at maybeClose (internal/child_process.js:925:16)&#xA;    at Socket.stream.socket.on (internal/child_process.js:346:11)&#xA;    at emitOne (events.js:116:13)&#xA;    at Socket.emit (events.js:211:7)&#xA;    at Pipe._handle.close [as _onclose] (net.js:554:12)&#xA;  killed: false,&#xA;  code: 255,&#xA;  signal: null,&#xA;  cmd: &#x27;php ./public/src/generate.php projectPath=\&#x27;/home/rohan/Documents/dodoc2/_projects/its-a-test\&#x27; musicPath=\&#x27;/_musics/classic.mp3\&#x27; clip1_name=\&#x27;\&#x27; clip2_name=\&#x27;\&#x27; clip3_name=\&#x27;\&#x27; clip4_name=\&#x27;\&#x27; clip5_name=\&#x27;\&#x27; clip1_desc=\&#x27;It\&#x27;s a first test\&#x27; clip2_desc=\&#x27;It\&#x27;s a second test\&#x27; clip3_desc=\&#x27;It\&#x27;s a third test\&#x27; clip4_desc=\&#x27;It\&#x27;s a fourth\&#x27; clip5_desc=\&#x27;It\&#x27;s a last test\&#x27; project_desc=\&#x27;\&#x27; workshop_type=\&#x27;Atelier Robotique\&#x27; title=\&#x27;It\&#x27;s a test\&#x27; participants=\&#x27;Molinillo Rohan\n\&#x27;&#x27; }&#xA;

    &#xA;