Recherche avancée

Médias (0)

Mot : - Tags -/performance

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

Autres articles (35)

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

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

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

  • Is this a problem in my command, the stream, or FFMPEG itself ? [closed]

    10 juin, par Ali Mustafa

    I am trying to download a section from approximately 06:40:00 to 06:44:00 from this stream : https://kick.com/grossgore/videos/8d36c089-ff2b-4167-9c92-bc8a3a9d033b

    


    I found the m3u8 URL : https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8

    


    I run the following command :

    


    ffmpeg -ss 06:40:00 -to 06:44:00 -i https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8 -c copy out.mp4


    


    The command runs for a while, but for some reason the output file is empty once the program has finished. How do I figure out what the problem is ?

    


    Log :

    


    ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.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-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --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-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 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[hls @ 0x633e19ea3200] Skip ('#EXT-X-VERSION:3')
[hls @ 0x633e19ea3200] Skip ('#ID3-EQUIV-TDTG:2025-05-25T21:04:39')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-ELAPSED-SECS:0.000')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-TOTAL-SECS:29231.935')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:26.675Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:39.175Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:51.675Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:57:04.175Z')
...
...
...
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:43.058Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:55.558Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-DISCONTINUITY')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-DISCONTINUITY')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:39:56.883Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:40:09.383Z')
...
...
...
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:17.516Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:30.016Z')
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/0.ts' for reading
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1.ts' for reading
Input #0, hls, from 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8':
  Duration: 08:07:11.94, start: 64.171000, bitrate: 0 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 0
  Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
  Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 60 tbr, 90k tbn, 120 tbc
    Metadata:
      variant_bitrate : 0
  Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'out.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 60 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1921.ts' for reading
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1922.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1923.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1924.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1925.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1926.ts' for reading
...
...
...
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2338.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2339.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2340.ts' for reading
frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


    


  • exe file not executing from deployed ASP.NET MVC app in TAS (Tanzu /PCF)

    24 juin, par Darshan Adakane

    I am facing an issue for my ASP.NET MVC web application on .NET 4 being deployed to TAS.

    


    I am trying to do image compression using ffmpeg.exe.

    


    While it is working on my local machine, I get an "500 internal server error" when deployed to TAS (tanzu application server). I am using hwc_buildpack and storing the file in Path.GetTemp() folder for testing.

    


    applications:
- name: MyApp-Dev
  memory: 1G
  instances: 1
  stack: windows
  buildpacks:
    - hwc_buildpack
  path: \MyAppnew\obj\Release\Package\PackageTmp
  env:
  services:
  routes:
    - route: myapp-dev.apps.company.com
    - route: myapp-dev.company.com


    


    I also see that the .exe is being published when app I deployed. I am assuming if TAS has NO permission to read exe or read exe 'not allowed' policy.

    


    This is my code :

    


    [HttpPost]&#xA;[Route("uploadimage")]&#xA;public async Task<ihttpactionresult> UploadImage()&#xA;{&#xA;    try&#xA;    {&#xA;        if (!Request.Content.IsMimeMultipartContent())&#xA;            return BadRequest("Unsupported media type.");&#xA;&#xA;        Console.WriteLine("UploadImage method started.");&#xA;&#xA;        var provider = new MultipartMemoryStreamProvider();&#xA;        await Request.Content.ReadAsMultipartAsync(provider);&#xA;&#xA;        Console.WriteLine($"Total Files available: {provider.Contents.Count}, {provider.Contents}");&#xA;&#xA;        foreach (var file in provider.Contents)&#xA;        {&#xA;            try&#xA;            {&#xA;                var imageFile = await file.ReadAsByteArrayAsync();&#xA;                Console.WriteLine($"imageFile, { imageFile.Length }");&#xA;                var rawFileName = file.Headers.ContentDisposition.FileName.Trim(&#x27;"&#x27;);&#xA;                Console.WriteLine($"rawFileName, {rawFileName}");&#xA;                var fileName = Path.GetFileName(rawFileName); // Sanitize filename&#xA;                Console.WriteLine($"fileName, {fileName}");&#xA;&#xA;                // Check file size limit (300MB)&#xA;                if (imageFile.Length > 300 * 1024 * 1024) // 300MB limit&#xA;                {&#xA;                    Console.WriteLine("File size exceeds 300MB limit.");&#xA;                    return BadRequest("File size exceeds 300MB limit.");&#xA;                }&#xA;&#xA;                var inputFilePath = Path.Combine(_uploadFolder, fileName);&#xA;                Console.WriteLine($"inputFilePath, {inputFilePath}");&#xA;&#xA;                var outputFilePath = Path.Combine(_uploadFolder, "compressed_" &#x2B; fileName);&#xA;                Console.WriteLine($"outputFilePath, {outputFilePath}");&#xA;&#xA;                // Save uploaded file to disk&#xA;                File.WriteAllBytes(inputFilePath, imageFile);&#xA;&#xA;                // Check if the input file exists&#xA;                if (!File.Exists(inputFilePath))&#xA;                {&#xA;                    Console.WriteLine($"Input file does not exist: {inputFilePath}");&#xA;                    return InternalServerError(new Exception($"❌ Input file does not exist: {inputFilePath}"));&#xA;                }&#xA;&#xA;                //Console.WriteLine($"✅ FFmpeg found at path: {ffmpegFullPath}");&#xA;&#xA;                await FFMpegArguments&#xA;                .FromFileInput(inputFilePath)&#xA;                .OutputToFile(outputFilePath, overwrite: true, options => options&#xA;                    .WithCustomArgument("-vf scale=800:-1")&#xA;                    .WithCustomArgument("-q:v 10")&#xA;                    )&#xA;                    .ProcessAsynchronously();&#xA;&#xA;                Console.WriteLine($"outputFilePath, {outputFilePath}");&#xA;&#xA;                // Check if the output file was created&#xA;                if (File.Exists(outputFilePath))&#xA;                {&#xA;                    var fileInfo = new FileInfo(outputFilePath); // Get file info&#xA;&#xA;                    Console.WriteLine($"outputFileInfoPropsFullName, {fileInfo.FullName}");&#xA;                    Console.WriteLine($"outputFileInfoPropsLength, {fileInfo.Length}");&#xA;&#xA;                    var compressedFileBytes = File.ReadAllBytes(outputFilePath);&#xA;                    var compressedFileBase64 = Convert.ToBase64String(compressedFileBytes);&#xA;&#xA;                    return Ok(new&#xA;                    {&#xA;                        Message = "Image uploaded and compressed successfully.",&#xA;                        CompressedImagePath = outputFilePath,&#xA;                        CompressedFileSize = fileInfo.Length, // Size in bytes&#xA;                        CompressedFileBase64 = compressedFileBase64&#xA;                    });&#xA;                }&#xA;                else&#xA;                {&#xA;                    Console.WriteLine("OutputFilePath File not exists.");&#xA;                    return InternalServerError(new Exception($"❌ Failed to create compressed file: {outputFilePath}"));&#xA;                });&#xA;            }&#xA;            catch (Exception ex)&#xA;            {&#xA;                Console.WriteLine($"File TRYCATCH:{ex}");&#xA;                return InternalServerError(new Exception("Image compression failed: " &#x2B; ex.Message));&#xA;            }&#xA;        }&#xA;    }&#xA;    catch (Exception ex)&#xA;    {&#xA;        Console.WriteLine($"Method TRYCATCH:{ex}");&#xA;        throw;&#xA;    }&#xA;&#xA;    return BadRequest("No image file uploaded.");&#xA;}&#xA;</ihttpactionresult>

    &#xA;

    I'm getting this error in my tanzu environment logs from the code when I execute :

    &#xA;

     await FFMpegArguments&#xA;

    &#xA;

    This is the exception log :

    &#xA;

    FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system&#xA;

    &#xA;

    I also see that the .exe files do exist in TAS in these logs :

    &#xA;

    2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of FFmpeg Executable: C:\Users\vcap\app\ffmpeg-bin\ffmpeg.exe&#xA;2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of ffmpegPath: C:\Users\vcap\app\ffmpeg-bin&#xA;2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of BaseDirectory: C:\Users\vcap\app\&#xA;2025-06-13T16:07:55.881&#x2B;05:30 [APP/PROC/WEB/0] [OUT] TempPath: C:\Users\vcap\AppData\Local\Temp\ &#xA;    2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at MCANew.Controllers.Api.MessagesController.<uploadimage>d__6.MoveNext() in I:\Agents\Agent-Win-B\_work\3033\s\MCANew\Controllers\Api\MessagesController.cs:line 133&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] --- End of stack trace from previous location where exception was thrown ---&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.<processasynchronously>d__24.MoveNext()&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.PrepareProcessArguments(FFOptions ffOptions, CancellationTokenSource&amp; cancellationTokenSource)&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.Helpers.FFMpegHelper.VerifyFFMpegExists(FFOptions ffMpegOptions)&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] File TRYCATCH:FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system&#xA;</processasynchronously></uploadimage>

    &#xA;

    My objective is to run successfully exe on TAS and image compression to happen.

    &#xA;

  • FileNotFoundError : [WinError 2] The system cannot find the file specified - FFMPEG

    5 avril 2024, par shiftyscales

    I am running a script using conda environment on Windows and getting this error (stack trace below), which is apparently caused by python executable not being able to find the ffmpeg.exe. There are numerous questions about this, but none of the solutions unfortunately worked for me, so I hope someone has fresh ideas.

    &#xA;

    What I tried :

    &#xA;

      &#xA;
    • conda install -c conda-forge ffmpeg (after this I can run ffmpeg in command line, but still getting the error)
    • &#xA;

    • pip install ffmpeg-python
    • &#xA;

    • Added the folder where ffmpeg.exe is located in conda env to the Windows Path as well as to sys.path in python.
    • &#xA;

    • copied the same ffmpeg.exe a) to the location of python.exe in conda env, b) to the location of the script I am running, c) to the location of subprocess.py.
    • &#xA;

    • Downloaded ffmpeg windows binary and repeated the last two steps with that file.
    • &#xA;

    &#xA;

    Is there anything else that I can try to make it work ?

    &#xA;

    ---------------------------------------------------------------------------&#xA;FileNotFoundError                         Traceback (most recent call last)&#xA;Cell In[10], line 22&#xA;     19 truncate_second = 8.2         # Video end = start_second &#x2B; truncate_second&#xA;     21 # Extract Video CAVP Features &amp; New Video Path:&#xA;---> 22 cavp_feats, new_video_path = extract_cavp(video_path, start_second, truncate_second, tmp_path=tmp_path)&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\site-packages\torch\nn\modules\module.py:1518, in Module._wrapped_call_impl(self, *args, **kwargs)&#xA;   1516     return self._compiled_call_impl(*args, **kwargs)  # type: ignore[misc]&#xA;   1517 else:&#xA;-> 1518     return self._call_impl(*args, **kwargs)&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\site-packages\torch\nn\modules\module.py:1527, in Module._call_impl(self, *args, **kwargs)&#xA;   1522 # If we don&#x27;t have any hooks, we want to skip the rest of the logic in&#xA;   1523 # this function, and just call forward.&#xA;   1524 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks&#xA;   1525         or _global_backward_pre_hooks or _global_backward_hooks&#xA;   1526         or _global_forward_hooks or _global_forward_pre_hooks):&#xA;-> 1527     return forward_call(*args, **kwargs)&#xA;   1529 try:&#xA;   1530     result = None&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\site-packages\torch\utils\_contextlib.py:115, in context_decorator.<locals>.decorate_context(*args, **kwargs)&#xA;    112 @functools.wraps(func)&#xA;    113 def decorate_context(*args, **kwargs):&#xA;    114     with ctx_factory():&#xA;--> 115         return func(*args, **kwargs)&#xA;&#xA;File D:\Work\DIff-Foley\Diff-Foley\inference\demo_util.py:131, in Extract_CAVP_Features.forward(self, video_path, start_second, truncate_second, tmp_path)&#xA;    129 print("truncate second: ", truncate_second)&#xA;    130 # Load the video, change fps:&#xA;--> 131 video_path_low_fps = reencode_video_with_diff_fps(video_path, self.tmp_path, self.fps, start_second, truncate_second)&#xA;    132 video_path_high_fps = reencode_video_with_diff_fps(video_path, self.tmp_path, 21.5, start_second, truncate_second)&#xA;    134 # read the video:&#xA;&#xA;File D:\Work\DIff-Foley\Diff-Foley\inference\demo_util.py:42, in reencode_video_with_diff_fps(video_path, tmp_path, extraction_fps, start_second, truncate_second)&#xA;     31 def reencode_video_with_diff_fps(video_path: str, tmp_path: str, extraction_fps: int, start_second, truncate_second) -> str:&#xA;     32     &#x27;&#x27;&#x27;Reencodes the video given the path and saves it to the tmp_path folder.&#xA;     33 &#xA;     34     Args:&#xA;   (...)&#xA;     40         str: The path where the tmp file is stored. To be used to load the video from&#xA;     41     &#x27;&#x27;&#x27;&#xA;---> 42     assert which_ffmpeg() != &#x27;&#x27;, &#x27;Is ffmpeg installed? Check if the conda environment is activated.&#x27;&#xA;     43     # assert video_path.endswith(&#x27;.mp4&#x27;), &#x27;The file does not end with .mp4. Comment this if expected&#x27;&#xA;     44     # create tmp dir if doesn&#x27;t exist&#xA;     45     os.makedirs(tmp_path, exist_ok=True)&#xA;&#xA;File D:\Work\DIff-Foley\Diff-Foley\inference\demo_util.py:26, in which_ffmpeg()&#xA;     20 def which_ffmpeg() -> str:&#xA;     21     &#x27;&#x27;&#x27;Determines the path to ffmpeg library&#xA;     22 &#xA;     23     Returns:&#xA;     24         str -- path to the library&#xA;     25     &#x27;&#x27;&#x27;&#xA;---> 26     result = subprocess.run([&#x27;which&#x27;, &#x27;ffmpeg&#x27;], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)&#xA;     27     ffmpeg_path = result.stdout.decode(&#x27;utf-8&#x27;).replace(&#x27;\n&#x27;, &#x27;&#x27;)&#xA;     28     return ffmpeg_path&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\subprocess.py:548, in run(input, capture_output, timeout, check, *popenargs, **kwargs)&#xA;    545     kwargs[&#x27;stdout&#x27;] = PIPE&#xA;    546     kwargs[&#x27;stderr&#x27;] = PIPE&#xA;--> 548 with Popen(*popenargs, **kwargs) as process:&#xA;    549     try:&#xA;    550         stdout, stderr = process.communicate(input, timeout=timeout)&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\subprocess.py:1026, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)&#xA;   1022         if self.text_mode:&#xA;   1023             self.stderr = io.TextIOWrapper(self.stderr,&#xA;   1024                     encoding=encoding, errors=errors)&#xA;-> 1026     self._execute_child(args, executable, preexec_fn, close_fds,&#xA;   1027                         pass_fds, cwd, env,&#xA;   1028                         startupinfo, creationflags, shell,&#xA;   1029                         p2cread, p2cwrite,&#xA;   1030                         c2pread, c2pwrite,&#xA;   1031                         errread, errwrite,&#xA;   1032                         restore_signals,&#xA;   1033                         gid, gids, uid, umask,&#xA;   1034                         start_new_session, process_group)&#xA;   1035 except:&#xA;   1036     # Cleanup if the child failed starting.&#xA;   1037     for f in filter(None, (self.stdin, self.stdout, self.stderr)):&#xA;&#xA;File D:\Software\Anaconda\envs\diff_foley\Lib\subprocess.py:1538, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session, unused_process_group)&#xA;   1536 # Start the process&#xA;   1537 try:&#xA;-> 1538     hp, ht, pid, tid = _winapi.CreateProcess(executable, args,&#xA;   1539                              # no special security&#xA;   1540                              None, None,&#xA;   1541                              int(not close_fds),&#xA;   1542                              creationflags,&#xA;   1543                              env,&#xA;   1544                              cwd,&#xA;   1545                              startupinfo)&#xA;   1546 finally:&#xA;   1547     # Child is launched. Close the parent&#x27;s copy of those pipe&#xA;   1548     # handles that only the child should have open.  You need&#xA;   (...)&#xA;   1551     # pipe will not close when the child process exits and the&#xA;   1552     # ReadFile will hang.&#xA;   1553     self._close_pipe_fds(p2cread, p2cwrite,&#xA;   1554                          c2pread, c2pwrite,&#xA;   1555                          errread, errwrite)&#xA;&#xA;FileNotFoundError: [WinError 2] The system cannot find the file specified&#xA;</locals>

    &#xA;