Remotion LabRemotion Lab
常見問題使用 Pexels 影片素材

使用 Pexels 影片素材

關於在 Remotion 專案中使用 Pexels 免費影片素材的常見問題,包含授權說明、使用方式與技術注意事項。

使用 Pexels 影片素材

什麼是 Pexels?

Pexels 是一個提供免費圖片和影片的素材平台。所有素材均在 Pexels License 下授權,允許免費用於個人和商業用途,且通常不需要署名。

可以在 Remotion 專案中使用 Pexels 影片嗎?

可以,但需要注意以下幾點:

  1. 授權確認:使用前請確認該素材的授權條款,Pexels License 一般允許商業使用,但部分素材可能有限制
  2. 技術整合:Remotion 可以使用遠端 URL 或下載後放入 public/ 目錄兩種方式使用 Pexels 影片
  3. CORS 限制:直接使用 Pexels 的 CDN URL 可能遇到 CORS 問題

Pexels License 允許哪些用途?

根據 Pexels License,你通常可以:

  • 在個人和商業專案中免費使用素材
  • 修改和剪輯影片
  • 不需要署名(雖然建議這樣做以支持創作者)

不允許的用途包括:

  • 將素材重新販賣或作為素材庫再分發
  • 在色情或誹謗性內容中使用
  • 暗示 Pexels 或原創作者認可你的專案

使用前請務必閱讀最新的 Pexels License 條款

如何在 Remotion 中使用 Pexels 影片?

方式一:下載並放入 public/ 目錄(推薦)

import { Video } from "remotion";
import { staticFile } from "remotion";
 
export const MyComposition = () => {
  return (
    <Video src={staticFile("pexels-background.mp4")} />
  );
};

方式二:直接使用 URL

import { OffthreadVideo } from "remotion";
 
export const MyComposition = () => {
  return (
    <OffthreadVideo
      src="https://player.vimeo.com/external/xxxxx.hd.mp4"
    />
  );
};

注意:直接使用外部 URL 時,請使用 <OffthreadVideo> 而非 <Video>,以避免渲染時的問題。

直接使用 Pexels URL 時有哪些注意事項?

  1. URL 穩定性:Pexels 的直接下載 URL 可能會變更,不建議長期依賴
  2. CORS:在本地開發時可能遇到 CORS 限制,考慮使用 Pexels API 或下載素材
  3. 渲染一致性:網路延遲可能影響渲染速度和穩定性
  4. 快取:Remotion 在渲染時會快取網路資源,但首次渲染仍需下載

如何使用 Pexels API 動態搜尋影片?

Pexels 提供免費 API,你可以在 calculateMetadata 或應用層面整合:

const PEXELS_API_KEY = process.env.PEXELS_API_KEY;
 
const searchPexelsVideos = async (query: string) => {
  const response = await fetch(
    `https://api.pexels.com/videos/search?query=${query}&per_page=1`,
    {
      headers: {
        Authorization: PEXELS_API_KEY,
      },
    }
  );
  const data = await response.json();
  return data.videos[0]?.video_files[0]?.link;
};

使用遠端影片時如何避免渲染問題?

使用遠端影片時,建議:

  1. 使用 <OffthreadVideo> 而不是 <Video>,前者在 Node.js 渲染環境中更穩定
  2. 在渲染前使用 prefetch() 確保影片已快取
  3. 設定適當的逾時(timeoutInMilliseconds)以允許影片下載
import { OffthreadVideo } from "remotion";
 
export const MyComposition = ({ videoUrl }: { videoUrl: string }) => {
  return (
    <OffthreadVideo
      src={videoUrl}
      style={{ width: "100%", height: "100%" }}
    />
  );
};

在 Lambda 渲染時使用 Pexels 影片有什麼特別注意事項?

Lambda 函式在每次渲染時都需要從網路下載影片,這會:

  • 增加渲染時間(取決於影片大小和網路速度)
  • 產生網路傳輸費用
  • 在部分限制較嚴的網路環境中可能失敗

建議在生產環境中將常用的 Pexels 影片預先下載並存放在你自己的 S3 儲存桶中,以確保穩定性和速度。

如何確認 Pexels 影片可以在 Remotion 中正常播放?

在 Remotion Studio 中測試時,如果影片無法播放,可能是:

  • 影片格式不相容(建議使用 H.264 MP4)
  • CORS 問題(嘗試下載後本地使用)
  • 非可尋址媒體(請查看 非可尋址媒體 文件)

相關資源