packages/docs/docs/gif/get-gif-duration-in-seconds.mdx
Part of the @remotion/gif package
Gets the duration in seconds of a GIF.
:::note Remote GIFs need to support CORS.
<details> <summary>More info</summary> <ul> <li> Remotion's origin is usually <code>http://localhost:3000</code>, but it may be different if rendering on Lambda or the port is busy. </li> <li> You can <a href="/docs/chromium-flags#--disable-web-security">disable CORS</a> during renders. </li> </ul> </details> :::srcA string pointing to a GIF asset
Promise<number> - the duration of the GIF in seconds, not factoring in that whether it is looped.
import {useCallback, useEffect} from 'react';
import {staticFile} from 'remotion';
// ---cut---
import {getGifDurationInSeconds} from '@remotion/gif';
import gif from './cat.gif';
const MyComp: React.FC = () => {
const getDuration = useCallback(async () => {
const imported = await getGifDurationInSeconds(gif); // 127.452
const publicFile = await getGifDurationInSeconds(staticFile('giphy.gif')); // 2.10
const remote = await getGifDurationInSeconds('https://media.giphy.com/media/xT0GqH01ZyKwd3aT3G/giphy.gif'); // 3.23
}, []);
useEffect(() => {
getDuration();
}, []);
return null;
};