Recherche avancée

Médias (0)

Mot : - Tags -/logo

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

Autres articles (51)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (7927)

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

  • 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

    &#xA;

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

    &#xA;

    I run the following command :

    &#xA;

    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&#xA;

    &#xA;

    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 ?

    &#xA;

    Log :

    &#xA;

    ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers&#xA;  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)&#xA;  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&#xA;  libavutil      56. 70.100 / 56. 70.100&#xA;  libavcodec     58.134.100 / 58.134.100&#xA;  libavformat    58. 76.100 / 58. 76.100&#xA;  libavdevice    58. 13.100 / 58. 13.100&#xA;  libavfilter     7.110.100 /  7.110.100&#xA;  libswscale      5.  9.100 /  5.  9.100&#xA;  libswresample   3.  9.100 /  3.  9.100&#xA;  libpostproc    55.  9.100 / 55.  9.100&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-VERSION:3&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#ID3-EQUIV-TDTG:2025-05-25T21:04:39&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-TWITCH-ELAPSED-SECS:0.000&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-TWITCH-TOTAL-SECS:29231.935&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:26.675Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:39.175Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:51.675Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:57:04.175Z&#x27;)&#xA;...&#xA;...&#xA;...&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:43.058Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:55.558Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-DISCONTINUITY&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-TWITCH-DISCONTINUITY&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:39:56.883Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:40:09.383Z&#x27;)&#xA;...&#xA;...&#xA;...&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:17.516Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Skip (&#x27;#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:30.016Z&#x27;)&#xA;[hls @ 0x633e19ea3200] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/0.ts&#x27; for reading&#xA;[hls @ 0x633e19ea3200] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1.ts&#x27; for reading&#xA;Input #0, hls, from &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8&#x27;:&#xA;  Duration: 08:07:11.94, start: 64.171000, bitrate: 0 kb/s&#xA;  Program 0 &#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;  Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;  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&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;  Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;Output #0, mp4, to &#x27;out.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.76.100&#xA;  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&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (copy)&#xA;  Stream #0:0 -> #0:1 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[hls @ 0x633e19ea3200] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1921.ts&#x27; for reading&#xA;[hls @ 0x633e19ea3200] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1922.ts&#x27; for reading&#xA;[https @ 0x633e1a43f9c0] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1923.ts&#x27; for reading&#xA;[https @ 0x633e1a877300] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1924.ts&#x27; for reading&#xA;[https @ 0x633e1a43f9c0] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1925.ts&#x27; for reading&#xA;[https @ 0x633e1a877300] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1926.ts&#x27; for reading&#xA;...&#xA;...&#xA;...&#xA;[https @ 0x633e1a877300] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2338.ts&#x27; for reading&#xA;[https @ 0x633e1a43f9c0] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2339.ts&#x27; for reading&#xA;[https @ 0x633e1a877300] Opening &#x27;https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2340.ts&#x27; for reading&#xA;frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    &#xA;video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown&#xA;

    &#xA;

  • FFmpeg RTSP stream to remote MediaMTX server disconnects after a few seconds [closed]

    13 juin, par Rorschy

    I'm new to RTSP and MediaMTX, and I'm trying to live stream my screen using FFmpeg and MediaMTX for a specific use case.

    &#xA;

    Everything works perfectly when both FFmpeg and MediaMTX run on the same machine.&#xA;However, when I move MediaMTX to a remote server, the stream becomes unstable — I can't maintain a connection or view the stream reliably.

    &#xA;

    Here is the FFmpeg command I'm using from the client machine :

    &#xA;

    ffmpeg -f gdigrab -framerate 10 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -f lavfi -i anullsrc -vcodec libx264 -tune zerolatency -g 30 -sc_threshold 0 -preset ultrafast -tune zerolatency -f rtsp rtsp:///live/stream&#xA;

    &#xA;

    And here’s the relevant MediaMTX log output on the remote server :

    &#xA;

    2025/06/12 14:28:44 INF [RTSP] [conn :35798] opened&#xA;2025/06/12 14:28:44 INF [RTSP] [session 2e487869] created by :35798&#xA;2025/06/12 14:28:44 INF [RTSP] [session 2e487869] is publishing to path &#x27;live/stream&#x27;, 2 tracks (H264, MPEG-4 Audio)&#xA;2025/06/12 14:28:45 INF [WebRTC] [session 8a909818] created by :47296&#xA;2025/06/12 14:28:45 WAR [WebRTC] [session 8a909818] skipping track 2 (MPEG-4 Audio)&#xA;2025/06/12 14:28:47 INF [WebRTC] [session dd0d3af7] created by :46306&#xA;2025/06/12 14:28:47 WAR [WebRTC] [session dd0d3af7] skipping track 2 (MPEG-4 Audio)&#xA;2025/06/12 14:28:49 INF [WebRTC] [session 5f853024] created by :46320&#xA;2025/06/12 14:28:49 WAR [WebRTC] [session 5f853024] skipping track 2 (MPEG-4 Audio)&#xA;2025/06/12 14:28:51 INF [WebRTC] [session 3edba9a8] created by :46342&#xA;2025/06/12 14:28:51 WAR [WebRTC] [session 3edba9a8] skipping track 2 (MPEG-4 Audio)&#xA;2025/06/12 14:28:53 INF [WebRTC] [session 4be5bd9b] created by :46352&#xA;2025/06/12 14:28:53 WAR [WebRTC] [session 4be5bd9b] skipping track 2 (MPEG-4 Audio)&#xA;2025/06/12 14:28:54 INF [RTSP] [conn :35798] closed: terminated&#xA;2025/06/12 14:28:54 INF [RTSP] [session 2e487869] destroyed: session timed out&#xA;2025/06/12 14:28:54 INF [WebRTC] [session 8a909818] closed: terminated&#xA;2025/06/12 14:28:54 INF [WebRTC] [session 3edba9a8] closed: terminated&#xA;2025/06/12 14:28:54 INF [WebRTC] [session 5f853024] closed: terminated&#xA;

    &#xA;

    My questions :

    &#xA;

      &#xA;
    1. What could be causing the RTSP stream to disconnect when streaming to a remote MediaMTX server ?
    2. &#xA;

    3. Are there any recommended network settings or MediaMTX configuration tweaks to ensure a stable stream over the internet ?
    4. &#xA;

    &#xA;

    Any help or guidance would be greatly appreciated. Thanks !

    &#xA;