<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Md. Faridul Hassan</title>
    <description>The latest articles on DEV Community by Md. Faridul Hassan (@faridulhassan).</description>
    <link>https://dev.to/faridulhassan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F112745%2Ff0236eea-79cf-42dc-8206-e1471a497689.jpg</url>
      <title>DEV Community: Md. Faridul Hassan</title>
      <link>https://dev.to/faridulhassan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/faridulhassan"/>
    <language>en</language>
    <item>
      <title>GSAP ScrollTrigger animation for Upwork Client Demo</title>
      <dc:creator>Md. Faridul Hassan</dc:creator>
      <pubDate>Mon, 25 Nov 2024 04:03:11 +0000</pubDate>
      <link>https://dev.to/faridulhassan/gsap-scrolltrigger-animation-for-upwork-client-demo-1gd4</link>
      <guid>https://dev.to/faridulhassan/gsap-scrolltrigger-animation-for-upwork-client-demo-1gd4</guid>
      <description>&lt;p&gt;Recently, I have made this cool web animation for an Upwork client with GSAP ScrollTrigger.&lt;/p&gt;

&lt;p&gt;It was a challenging task to calculate the target positions dynamically and make it working for Desktop, Tablet and Mobile including browser resize events. &lt;/p&gt;

&lt;p&gt;𝗜 𝗵𝗮𝘃𝗲 𝘂𝘁𝗶𝗹𝗶𝘀𝗲𝗱 𝗴𝗲𝘁𝗕𝗼𝘂𝗻𝗱𝗶𝗻𝗴𝗖𝗹𝗶𝗲𝗻𝘁𝗥𝗲𝗰𝘁 𝘁𝗼 𝗴𝗲𝘁 𝗼𝗳𝗳𝘀𝗲𝘁 𝘁𝗼𝗽, 𝗹𝗲𝗳𝘁, 𝘄𝗶𝗱𝘁𝗵, 𝗵𝗲𝗶𝗴𝗵𝘁 𝗲𝘁𝗰. 𝗮𝗻𝗱 𝗳𝗶𝗻𝗱 𝘁𝗵𝗲 𝘁𝗮𝗿𝗴𝗲𝘁 𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻𝘀 𝗱𝘆𝗻𝗮𝗺𝗶𝗰𝗮𝗹𝗹𝘆. &lt;/p&gt;

&lt;p&gt;It was implemented in client’s Elementor WordPress Site which also works like Single Page Application (SPA). So, I also had to use Elementor’s page transitions events and apply the animation calls and cleaning accordingly.&lt;/p&gt;

&lt;p&gt;Video Link: &lt;a href="https://youtu.be/5pLg4o0FKBM" rel="noopener noreferrer"&gt;https://youtu.be/5pLg4o0FKBM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you need some cool web animations, you can hire me on Upwork.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.upwork.com/freelancers/~0166c25fe6338aa8c3" rel="noopener noreferrer"&gt;https://www.upwork.com/freelancers/~0166c25fe6338aa8c3&lt;/a&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  Upwork #GSAP #ScrollTrigger #Freelancing #WebAnimation #Animation #WordPress #Elementor
&lt;/h1&gt;

</description>
      <category>gsap</category>
      <category>wordpree</category>
      <category>upwork</category>
      <category>freelance</category>
    </item>
    <item>
      <title>Cliet-side WebM/MP4 export from React.js Canavs Animation using ffmpeg.wasm for an Upwork client</title>
      <dc:creator>Md. Faridul Hassan</dc:creator>
      <pubDate>Tue, 24 Sep 2024 13:21:56 +0000</pubDate>
      <link>https://dev.to/faridulhassan/cliet-side-webmmp4-export-from-reactjs-canavs-animation-using-ffmpegwasm-for-an-upwork-client-4omg</link>
      <guid>https://dev.to/faridulhassan/cliet-side-webmmp4-export-from-reactjs-canavs-animation-using-ffmpegwasm-for-an-upwork-client-4omg</guid>
      <description>&lt;p&gt;Recently, I have worked for an Upwork client to export WebM and MP4 video from their HTML5 Canvas Animation based react.js web application in browser (runtime) and also fix the blur and black-white issue on that. &lt;br&gt;
And they used Konva.js canvas library for the application.&lt;/p&gt;

&lt;p&gt;I have used so many available libraries (canvas-record.js, CCapture.js, record-canvas.js, ffmpeg.wasm etc. ) to make the solution, but every time there were issues like very long processing timing, freezing the application and so many.&lt;br&gt;
But finally I reverted back to ffmpeg.wasm and used its multi-thread options. But to use multi-thread, I had to enable JavaScript SharedArrayBuffer api by setting ‘Cross-Origin-Embedder-Policy': 'require-corp', 'Cross-Origin-Opener-Policy': 'same-origin’ in server header request. &lt;br&gt;
After that it worked on localhost without https and to make it live - I also needed to host the site on “https” enabled server. Otherwise ffmpeg.wasm multi-thread won’t work.&lt;/p&gt;

&lt;p&gt;And finally I successfully reduced the runtime processing timing on browser. It exports instantly for WebM video and for a 20 second animation, it took around 1-1.5 minutes ( it might very based on other settings and user’s device ). &lt;br&gt;
In this way, I saved the server request and video quality is also good and small in sizes.&lt;/p&gt;

&lt;p&gt;Youtube Demo: &lt;a href="https://youtu.be/9vCNP5aQGlY" rel="noopener noreferrer"&gt;https://youtu.be/9vCNP5aQGlY&lt;/a&gt; &lt;br&gt;
My Upwork Profile: &lt;a href="https://www.upwork.com/freelancers/%7E0166c25fe6338aa8c3" rel="noopener noreferrer"&gt;https://www.upwork.com/freelancers/~0166c25fe6338aa8c3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;#upwork #html5canvas #React #ffmpeg #konva.js #freelancing&lt;/p&gt;

</description>
      <category>upwork</category>
      <category>react</category>
      <category>html5canvas</category>
      <category>ffmpeg</category>
    </item>
  </channel>
</rss>
