Recherche avancée

Médias (1)

Mot : - Tags -/swfupload

Autres articles (55)

  • 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

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

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

Sur d’autres sites (9786)

  • Grabbing a single image from a MS VS .NET 6.0 C# WPF process always returns the same image

    12 mai 2023, par Wolfgang Kurz

    I am trying to develop a MS VS .NET 6.0 C# WPF application to digitize my Super 8 cine films. To grab the frames of the film I want to use FFMPEG because Accord.NET6.0 DirectShow does not work under MS VS 2022 .
I use
FFmpeg 64-bit static Windows build from www.gyan.dev
Version : 2022-09-29-git-8089fe072e-full_build-www.gyan.dev

    


    FFMPEG is invoked from a Process in ma application whicch sets the process FFMPEG start parameters. The webcam parameter is "USB Webcam" ( digital Celestron handheld microscope connected via USB - is DirectShow compatible )
The video resolution parameter "camRes" is "1280x960"

    


    public void UpdateImage(string aString)
    {
        string startPath = "C:" + MainWindow.bSl + "ffmpeg" + MainWindow.bSl + "bin" + MainWindow.bSl + "ffmpeg.exe ";

        MainWindow.aResult = "";
        System.Drawing.Bitmap result;
        ProcessStartInfo psi;
        psi = new ProcessStartInfo();
        psi.FileName = startPath;
        string targPath;
        psi.Arguments = "-f dshow -video_size" + MainWindow.dQuote + webCam + MainWindow.dQuote +
             " -framerate 10  -i video=" + MainWindow.dQuote + camRes + MainWindow.dQuote +
            " -frames:v 1 test%3d.bmp -update 1";
        string errors = "";
        string results = "";
        psi.CreateNoWindow = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.WindowStyle = ProcessWindowStyle.Normal;
        psi.WorkingDirectory = "C:" + MainWindow.bSl + "ffmpeg" + MainWindow.bSl + "bin" + MainWindow.bSl;

        using (Process theProcess = new Process())
        {
            theProcess.StartInfo = psi;
            theProcess.Start();

            theProcess.WaitForExit();
            while (theProcess.HasExited == false)
            {
                Thread.Sleep(50);
            }
            Thread.Sleep(50);

            try
            {
                if (File.Exists(pathCI) == true)
                {
                    DefineImage.ffmpegRes = new Bitmap(pathCI);
                    MainWindow.actMWInstance.UpdateMessage(DateTime.Now +
                        "- Old image disposed, new image grabbed");
                    File.Delete(pathCI);
                }
            }
            catch (System.Exception ex)
            {
                MainWindow.actMWInstance.UpdateMessage(DateTime.Now + "Image grabbing failed");
            }
            theProcess.Close();
            theProcess.Dispose();
        }

        if (aString.Length == 0)
        {
            File.Delete(pathCI);
            MainWindow.actMWInstance.DoMove("200", "0", true);
        }
        if (ffmpegRes != null)
        {
            BitmapSource aBMPSrc = BitmapConversion.ToWpfBitmap(ffmpegRes);
            IMGFrame.Source = aBMPSrc;
        }
        Show();
    }


    


    The attached screenshot shows the expected GUI content.
https://www.wkurz.com/wkurz/images/FFMPEGTEST.jpg

    


    My problem now is, when I try to refresh the image in the DefineDialog window, I always get the same image although the film has been moved by one frame.

    


    Is the first image cached by FFMPEG and always used again with the provided parameters.

    


    How to force FFMPEG to replace the image with a new one.

    



    


    -----------------------------------------------------------------------+this is additional information to the question.
I have managed to grab the film frame but still get always the same image during a session :*

    


    GUI of the WPF C# program

    


    It is obvious that the cine film frame has been successfully grabbbed.
The next step should be to work at the image ( correct brightness contrast, gama and colors) and then store the evaluated correction values that have later to be applied to the frames during a batch process, which automatically transports the film, grabs the frames and corrects the colors and then stores the frames as consecutively numbered images which than can be used to generate a video with FFMPEG :

    


    Now the problem I cannot overcome :

    


    In the definition dialog there are 2 buttons ( Refresh and New Image). The intension is to reread / regrab a frame, if the current frame is not optimal to evaluate the correction values.

    


    Whenever I click one of the buttons FFMPEG seems to grab an image, but FFMPEG provides always the same (identcial to the first already available image) to the caller ( a .NET C# Process in my proggram).

    


    The output stream is a single jpg image ( test%04d.jpg ) in a specified target library . Here follows the generated output which seem to be OK according to my knowledge.

    


    I want to ask all interested persons to look over this provided information - may be someone has an idea, what causes the fact, that FFMPEG 6.0 van Neumann always delivers the first image grabbed. in a session.
It seems that there is something cached and reused over and over again.

    


    DefImg 147: UpdateImage started ( Lines starting with DefImg or DefineImage are test output statements provided by the C# program)


    


    DefineImage 155 11.05.2023 17:53:20 C :\ffmpeg\bin\ffmpeg.exe -y -nostdin -f dshow -an -video_size 1280x960 -framerate 10 -i video="USB Microscope" -filter:v "smartblur=luma_radius=0.9:luma_strength=0.7:luma_threshold=0" -frames:v 1 C :\FilmProjList\TEST\TEST%%04d.jpg -update 1
DefineImage 180 ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration : —enable-gpl —enable-version3 —enable-static —disable-w32threads —disable-autodetect —enable-fontconfig —enable-iconv —enable-gnutls —enable-libxml2 —enable-gmp —enable-bzlib —enable-lzma —enable-libsnappy —enable-zlib —enable-librist —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-libbluray —enable-libcaca —enable-sdl2 —enable-libaribb24 —enable-libdav1d —enable-libdavs2 —enable-libuavs3d —enable-libzvbi —enable-librav1e —enable-libsvtav1 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxavs2 —enable-libxvid —enable-libaom —enable-libjxl —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-frei0r —enable-libfreetype —enable-libfribidi —enable-liblensfun —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-d3d11va —enable-dxva2 —enable-libvpl —enable-libshaderc —enable-vulkan —enable-libplacebo —enable-opencl —enable-libcdio —enable-libgme —enable-libmodplug —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libshine —enable-libtheora —enable-libtwolame —enable-libvo-amrwbenc —enable-libilbc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-ladspa —enable-libbs2b —enable-libflite —enable-libmysofa —enable-librubberband —enable-libsoxr —enable-chromaprint
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Trailing option(s) found in the command : may be ignored.
Input #0, dshow, from 'video=USB Microscope' :
Duration : N/A, start : 5368.514437, bitrate : N/A
Stream #0:0 : Video : rawvideo (YUY2 / 0x32595559), yuyv422(tv, bt470bg/bt709/unknown), 1280x960, 10 fps, 10 tbr, 10000k tbn
Stream mapping :
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
[swscaler @ 000001442fdcebc0] deprecated pixel format used, make sure you did set range correctly ( that I do not understand )
Last message repeated 3 times
[mjpeg @ 00000144278b0d80] removing common factors from framerate
Output #0, image2, to 'C :\FilmProjList\TEST\TEST%04d.jpg' :
Metadata :
encoder : Lavf60.3.100
Stream #0:0 : Video : mjpeg, yuvj422p(pc, bt470bg/bt709/unknown, progressive), 1280x960, q=2-31, 200 kb/s, 10 fps, 10 tbn
Metadata :
encoder : Lavc60.3.100 mjpeg
Side data :
cpb : bitrate max/min/avg : 0/0/200000 buffer size : 0 vbv_delay : N/A
frame= 0 fps=0.0 q=3.6 size= 0kB time=00:00:00.00 bitrate=N/A speed=N/A
    
frame= 1 fps=0.0 q=3.6 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x
    
video:45kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown

    


    DefineImage 248 11.05.2023 17:53:23 ( test output from, the C# program)
Das Programm "[11724] Cine2Video.exe" wurde mit Code 0 (0x0) beendet.

    


    


    


    Mit freundlichen Grüßen / Best regards
Ute & Wolfgang Kurz
Domaine : https://uwkurz.de ; Homepage : https://www.uwkurz.de/home
Location : 9° 11' 27,75" East, 48° 43' 32,80" North
E-Mail : wolfgang@uwkurz.de , ute@uwkurz.de
Gesendet über Glasfaser von HOMENET.de

    


    


  • 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;