마이리얼 짐

고객의 문제를 제시하고 이를 해결해주는 서비스의 로망이 느껴지도록

 스토리광고영상

   공간 10곳, 모델 7인

   준시네마 카메라, 조명팀

   2분 30초

   편당

 

    ₩ 15,000,000


    (예상 금액으로, 실제 비용과 다를 수 있습니다.)

비슷한 영상을 만들고 싶다면,

견적을 계산해보세요

핸드폰으로 영상을 촬영해서 보내면, 

알맞은 운동을 안내해주는 서비스에요.

사람들이 공감할만한 문제를 제시하고, 

밝고 긍정적인 브랜드 이미지를 보여주려고 했어요.

살짝 톤다운된 부드러운 이미지와 다정한 나레이션을 전체 톤앤매너로 잡았어요.


7명의 배우들이 다양한 공간에서, 

의상을 바꿔입으며 촬영했어요.

또한 다른 두 개의 영상과 함께 촬영해서, 

전체 예산을 절약할 수 있었어요.


import React, { useState } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { Alert, AlertDescription } from '@/components/ui/alert'; import { Clock } from 'lucide-react'; const YouTubeScheduler = () => { // 내일 날짜를 기본값으로 설정 const getTomorrowDateTime = () => { const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); tomorrow.setHours(9, 0, 0, 0); // 다음날 오전 9시로 설정 return tomorrow.toISOString().slice(0, 16); // YYYY-MM-DDTHH:mm 형식으로 변환 }; const [url, setUrl] = useState(''); const [scheduledTime, setScheduledTime] = useState(getTomorrowDateTime()); const [videoId, setVideoId] = useState(''); const [message, setMessage] = useState(''); const [isScheduled, setIsScheduled] = useState(false); // YouTube URL에서 video ID 추출 const extractVideoId = (url) => { const regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/; const match = url.match(regExp); return (match && match[7].length === 11) ? match[7] : null; }; // 스케줄 설정 const scheduleVideo = () => { const extractedId = extractVideoId(url); if (!extractedId) { setMessage('올바른 YouTube URL을 입력해주세요.'); return; } if (!scheduledTime) { setMessage('재생 시간을 설정해주세요.'); return; } const scheduledTimestamp = new Date(scheduledTime).getTime(); const now = new Date().getTime(); if (scheduledTimestamp <= now) { setMessage('미래 시간을 선택해주세요.'); return; } setVideoId(extractedId); setIsScheduled(true); const formattedTime = new Date(scheduledTime).toLocaleString('ko-KR', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }); setMessage(`${formattedTime}에 재생이 예약되었습니다.`); // 예약된 시간에 실행될 타이머 설정 const timeUntilPlay = scheduledTimestamp - now; setTimeout(() => { setMessage('영상이 재생됩니다!'); // 실제 재생 로직은 여기에 구현 }, timeUntilPlay); }; return ( YouTube 예약 재생
setUrl(e.target.value)} className="w-full" />
setScheduledTime(e.target.value)} className="w-full" />
{message && ( {message} )} {videoId && (