wecut은(는) 무엇을 하나요?
wecut은 이 머신에 설치된 FFmpeg를 사용하여 JSON 프로젝트를 MP4(또는 GIF)로 렌더링합니다. 편집 내용을 기술하면 WeCut이 비디오 작업을 수행합니다. 네트워크 서비스를 호출하지 않습니다.
wecut이 PATH에 없으면 아래 모든 명령어 대신 npx -y wecut(Node 16+)을 사용하세요. WeCut이 MCP 서버로 연결된 경우, 동일한 단계가 wecut_doctor, wecut_probe, wecut_validate, wecut_preview(프레임을 이미지로 반환), wecut_render, wecut_list, wecut_schema, wecut_example, wecut_analyze(프레임 시트를 이미지로 반환), wecut_recipe_list, wecut_recipe_show, wecut_recipe_apply, wecut_recipe_from_project 도구로 제공됩니다. 프로젝트는 project(객체) 또는 projectFile(경로)로 전달합니다.
워크플로
- 머신 확인:
wecut doctor. FFmpeg가 없다고 보고하면hint를 따르세요(예:sudo apt-get install -y ffmpeg). - 미디어를 작업 공간에 배치. 프로젝트의 모든 경로는
wecut을 실행하는 폴더(또는--root DIR)를 기준으로 합니다. URL은 거부됩니다. 먼저 파일을 다운로드하세요. - 미디어 확인:
wecut probe media/talk.mp4 media/music.mp3는 길이, 크기, fps 및 오디오 유무를 제공합니다. 이 숫자를from/to에 사용하세요. project.json작성(형식은 아래 참조).wecut example podcast-clip은 전체 예제를 출력합니다.wecut schema는 JSON 스키마를 출력합니다.wecut list는 모든 스타일, 글꼴, 전환 및 필터 이름을 보여줍니다.- 검증:
wecut validate project.json. 오류는 JSON 포인터(/clips/0/to)와hint와 함께 반환됩니다. 수정하고 반복하세요. - 렌더링 전 미리보기:
wecut preview project.json --at 0.5,3,10은 작은 JPG 프레임을out/preview/에 씁니다. 열어서 프레이밍, 텍스트 크기 및 캡션 위치를 확인하세요. - 렌더링:
wecut render project.json. 빠른 540p 확인을 위해--preset draft를, 최종 결과물을 위해 기본값final을 사용하세요.
모든 명령어는 하나의 JSON 객체를 출력합니다. 종료 코드: 0 정상, 2 잘못된 입력, 3 누락된 종속성, 4 렌더링 실패, 5 제한 초과. wecut render -로 프로젝트를 파이프로 전달할 수 있습니다.
프로젝트 형식
{
"wecut": "1",
"output": { "file": "out/clip-01.mp4", "ratio": "9:16", "res": 1080, "fps": 30 },
"clips": [
{ "src": "media/talk.mp4", "from": 754.2, "to": 781.0, "focus": { "x": 0.42, "y": 0.5 } },
{ "src": "media/talk.mp4", "from": 795.5, "to": 812.0, "zoom": 1.15 }
],
"texts": [
{ "text": "How I made my first $10k", "start": 0, "end": 3, "style": "hook", "y": 0.2, "in": { "type": "pop" } }
],
"captions": { "words": "media/talk.words.json", "src": "media/talk.mp4", "style": "karaoke" },
"audio": [ { "src": "media/music.mp3", "volume": 25, "loop": true, "duck": true, "fadeOut": 1.5 } ]
}
중요한 규칙:
- 두 가지 시계. 클립의
from/to는 소스 파일의 초 단위입니다. 다른 모든 것(texts,overlays,audio.at,filters,effects)은 완성된 비디오의 초 단위입니다.wecut validate는 완성된duration을 출력합니다. - 전환은 겹칩니다. 클립 N의
transition은 클립 N+1과 블렌딩되어 비디오가duration만큼 짧아집니다. - 프레이밍. 기본
fit은cover(채우고 자르기)입니다.focus(0..1; x 0.3은 왼쪽 유지)와zoom으로 자르기를 조정하세요."fit": "contain"과"background": "blur"를 사용하여 전체 프레임을 표시합니다. - 위치는 캔버스의 분수이며, 0.5는 중앙입니다. 글꼴
size는 1080p에서 픽셀 단위입니다. - 이미지는
duration(기본값 3)을 사용하며motion: in, out, left, right, up, down을 가질 수 있습니다. - 이모지는 텍스트로 그려지지 않습니다. PNG에 넣고
overlays를 사용하세요.
캡션
단어 타이밍이 포함된 대본을 WeCut에 제공하면 자막을 빌드합니다:
words:.json,.srt또는.vtt경로, 또는 인라인 배열[{"word": "hi", "start": 0.1, "end": 0.4}]입니다. OpenAI/Groqverbose_json및 whisper.cpp JSON은 그대로 읽힙니다.src: 대본이 속한 비디오로 설정합니다. 그러면 대본은 소스 파일 자체의 시간을 유지하고, WeCut은 해당 파일에서 잘라낸 각 클립을 통해 출력 타임라인으로 모든 단어를 이동합니다(속도 포함).src가 없으면 시간이 이미 출력 시간이어야 합니다.style:classic,yellow,box-black,box-white,bold,comic,shadow(한 번에 한 구절),karaoke,karaoke-green(말하는 단어가 빛남),pop(한 번에 하나의 큰 단어).
대본이 필요한 경우: wecut doctor는 이 FFmpeg에 Whisper 필터가 있을 때 local_transcription: true를 보고합니다. 그렇지 않으면 이미 가지고 있는 음성-텍스트 변환 도구를 사용하고 단어 타이밍을 JSON으로 저장하세요.
템플릿: 효과적인 것을 복사하세요
레시피는 내용 없이 편집 모양입니다. 예를 들어 헤드라인 카드가 있는 5초 훅, 그 다음 토크와 같은 섹션, 텍스트 슬롯, 캡션 및 음악 스타일, 효과가 포함됩니다. 새로운 클립, 단어 및 음악에 적용하면 프로젝트가 생성됩니다.
- 효과 있었던 비디오 분석:
wecut analyze media/viral.mp4는 샷과 페이스, 처음 3초 컷, 플래시, 템포, 일시 정지, 무음 플랫폼 아웃트로(생략), 그리고sheet: 각 샷의 프레임 하나를 단일 이미지로 반환합니다. 시트에서 헤드라인 카드, 텍스트 스타일, 프레이밍 및 캡션 스타일을 확인하세요. - 레시피 선택 또는 작성:
wecut recipe list(내장: news-headline, news-headline-blur, quote-hook, vlog-phrases, podcast-punch, photo-slideshow, 그리고 작업 공간의recipes/*.json).wecut recipe show <name>은 역할과 텍스트 슬롯을 나열합니다. 작성하려면wecut recipe schema를 따르세요. - 적용:
{
"recipe": "news-headline",
"clips": [
{ "src": "media/broll.mp4", "role": "hook" },
{ "src": "media/talk.mp4", "from": 120, "to": 165 }
],
"texts": { "label": { "text": "Page name" }, "headline": { "text": "The claim in one line", "emphasis": ["claim"] } },
"transcript": "media/talk.words.json",
"write": "projects/clip-01.json"
}
wecut recipe apply --input request.json(또는 stdin에 JSON이 있는 --input -)은 모든 것을 확인하고 프로젝트를 저장합니다. 그런 다음 preview 및 render하세요. 역할이 없는 클립은 body를 제공합니다. 클립이 없는 섹션은 다음 섹션 영상의 시작 부분을 빌립니다.
- 자신의 레시피 저장:
wecut recipe from-project projects/clip-01.json --name my-style --write recipes/my-style.json은 섹션, 전환, 텍스트 슬롯, 캡션 스타일, 효과 및 음악을 기본 트랙으로 유지합니다.
음악: 레시피는 자체 트랙(music.src)을 가질 수 있으며, CapCut 템플릿의 노래처럼 기본적으로 사용됩니다. "music": "media/song.mp3"(또는 사운드가 사용되는 비디오)를 전달하여 교체하거나, "none"을 전달합니다. 다른 사람의 비디오에서 가져온 노래는 업로드 후 플랫폼에 의해 음소거될 수 있습니다. 게시할 때 앱에서 트렌딩 사운드를 추가하면 이를 피할 수 있습니다.
내용이 아닌 구조를 복사하세요: 다른 제작자의 영상, 정확한 문구 및 음악은 그들의 소유입니다.
하나의 긴 비디오에서 여러 클립 만들기
wecut probe로 소스를 확인하고 단어 타이밍이 포함된 대본을 얻습니다.- 대본을 읽고 순간을 선택합니다(사용자가 결정하며, WeCut은 내용을 판단하지 않습니다).
- 각 클립에 대해 하나의 프로젝트를 작성하고, 각각
captions.src가 소스를 가리키도록 하여 하나의 대본이 모든 클립에 사용되도록 합니다. wecut preview로 하나를 미리보고,focus를 조정한 다음 각각wecut render합니다.
문제 해결
E_RANGE:to가 파일 끝을 지났습니다. 실제 길이를 확인하려면wecut probe를 사용하세요.E_PATH: 경로가 작업 공간 외부에 있거나 URL입니다.E_MEDIA: 파일이 읽을 수 있는 비디오, 이미지 또는 오디오 파일이 아니거나 해당 필드에 잘못된 종류입니다(클립에 음악, 오버레이에 비디오).E_DEPENDENCY: FFmpeg가 없거나, 6보다 오래되었거나, libass 없이 빌드되었습니다.wecut doctor를 실행하세요.- 렌더링이 너무 느림:
--preset draft, 더 낮은output.res또는 프로젝트당 더 적은 클립을 사용하세요. 결과의render_seconds및realtime_factor는 이 머신의 속도를 알려줍니다. - FFmpeg가 정확히 무엇을 실행할지 보려면:
wecut render project.json --dry-run.