알림
뒤로
알림 설정
뒤로
더보기
게시물 알림
내 글 반응
내가 작성한 게시물이나 댓글에 다른 사람이 댓글이나 답글을 작성하면 알려줍니다.
공지사항
사이트에서 보내는 중요한 공지를 실시간으로 알려줍니다.
Alarm
마이페이지
로그아웃
로그인이 필요합니다.
로그인
카탈로그
스토리광고
스토리광고(일반)
스토리광고(B급)
스토리드라마
기업/기관
브랜드필름
인터뷰홍보영상
인터뷰,다큐
인터뷰 스토리영상
다큐멘터리
견적계산기
닫기
카탈로그
스토리광고
스토리광고(일반)
스토리광고(B급)
스토리드라마
기업/기관
브랜드필름
인터뷰홍보영상
인터뷰,다큐
인터뷰 스토리영상
다큐멘터리
견적계산기
MENU
카탈로그
견적계산기
영상 견적계산기
여러 항목을 선택하면서 가장 합리적으로
견적을 맞추어 보세요
.
* 30초 영상 기준
항목
항목설명
고객선택항목
단가
기획단계
작가
-
500,000원
연출
-
1,000,000원
편수대비 추가비용
몇편을 제작합니까?
0
1편
2편
3편
4편
5편
촬영단계
촬영팀
어떤 카메라를 씁니까?
선택해주세요
스탠다드(SONY S3)
준시네마(FS3, C300)
시네마(RED, Arri)
※ 사용할 카메라에 따른 촬영감독, 촬영팀에 대한 인건비
촬영장비비
선택한 카메라에 따른 장비비용
카메라 옵션에 따라 자동 선택
※ 카메라, 렌즈, 삼각대 등의 장비 사용비
특수촬영
카메라무빙이 필요합니까?
아니오
예
드론
드론촬영이 필요합니까?
아니오
예
조명팀
조명팀이 필요합니까?
아니오
예
촬영팀에 포함
※ 조명팀이 별도로 있을 경우, 전문적인 조명 셋팅으로 영상 퀄리티와 촬영 속도가 향상됩니다.
스튜디오
스튜디오가 필요합니까?
필요없음
소형
중형
대형(파주)
사운드녹음
배우대사가 있습니까?
아니오
1~3인
4인이상
출연료
한국인배우
0명
1명
2명
3명
4명
5명
6명
7명
8명
9명
10명
외국인배우
0명
1명
2명
3명
4명
5명
6명
7명
8명
9명
10명
단역
0명
1명
2명
3명
4명
5명
6명
7명
8명
9명
10명
※ 유명배우가 필요한 경우에는 별도 상의
편집단계
편집비
몇 편을 제작합니까?
0
1편
2편
3편
4편
5편
그래픽
몇 편을 제작합니까?
0
1편
2편
3편
4편
5편
DI, 색보정
몇 편을 제작합니까?
0
1편
2편
3편
4편
5편
3D
3D 작업이 필요합니까?
별도 협의
음악(사용권구입)
기존음원에 저작권을 구입합니다
0
1곡
2곡
3곡
4곡
5곡
음악(작곡)
영상을 위한 음악을 따로 만듭니다
0
1곡
2곡
3곡
4곡
5곡
성우·번역단계
번역비(영어)
영어 번역이 필요합니까?
아니오
예
번역비(그 외 언어)
몇 개 언어 별도 번역이 필요합니까?
0
1개 언어
2개 언어
3개 언어
4개 언어
5개 언어
성우(한국어/영어)
나레이션이 필요합니까?
아니오
예
성우(그 외 언어)
몇 개 언어 별도 나레이션이 필요합니까?
0
1개 언어
2개 언어
3개 언어
4개 언어
5개 언어
기타
진행비(예비비)
전체 예산의 5%
자동 계산
총 견적금액
PDF로 만들기
엑셀로 저장
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 && (
)}
); };