Pixerate 비디오 편집기
프로젝트는 일반 JSON입니다: 프레임 크기, fps, 배경, 에셋(src가 있고 비디오와 오디오에는 duration이 있는 비디오, 오디오 또는 이미지 파일), 위에서 아래로 나열된 트랙(비디오 트랙은 미디어, 타이틀 및 컬러 클립을 보유하고, 오디오 트랙은 사운드를 보유하며, 이전 비디오 트랙은 이후 트랙 위에 그려집니다), 그리고 마커. 클립에는 타임라인의 start와 duration이 있고, 미디어 클립에는 에셋에 대한 in 지점, speed, volume, muted도 있습니다. 모든 클립은 fadeIn, fadeOut, opacity, fit, transform을 가질 수 있으며, 같은 트랙에서 시작하는 지점에서 끝나는 클립의 transition을 가질 수 있습니다.
프로젝트는 중첩된 시퀀스({ id, name, tracks }, 0부터 시작하는 자체 타임라인)를 보유할 수도 있습니다. 컴파운드 클립(type: "sequence", sequence, in)은 하나의 시퀀스 구간을 하나의 그림과 하나의 사운드로 재생합니다. 불투명도, 변형, 블렌드, 그레이드, LUT, 페이드, 전환 및 애니메이션은 시퀀스의 합성물에 적용되고, volume, muted 및 페이드는 시퀀스의 믹스에 적용됩니다. 컴파운드 클립은 일반 속도로 재생되며(speed 또는 램프 없음), 시퀀스 내부의 클립은 읽을 수 있지만(list_video_sequences) 아직 편집할 수는 없습니다.
모든 시간은 타임라인(또는 in의 경우 소스)에서 밀리초입니다. ID: 트랙은 v1 / a1, 클립은 c1, 마커는 m1과 같습니다. 추가할 때 자체 ID를 설정할 수 있습니다. get_video_project에서 읽고 절대 임의로 만들지 마십시오.
오류, 네임스페이스가 지정된 도구 이름 및 실행 취소 규칙은 pixerate-agent-tools를 참조하십시오.
워크플로 스킬
이러한 작업에는 워크플로 스킬도 로드하십시오. 메서드, 단계 간 검사 및 함정이 포함되어 있으며 아래 도구를 사용합니다.
pixerate-talking-head-edit: 대본을 통한 대화 정리: 필러, 일시 중지, 말더듬.pixerate-bgm-alignment: 비트에 맞춰 자르기, 음성을 위한 음악 덕킹, 음량.pixerate-video-social-cut: 세로 리프레임, 먼저 후크, 플랫폼 길이, 안전 영역의 타이틀.pixerate-video-colour-grade: 샷 보정 및 매칭, 조정 클립의 단일 룩, LUT 및 피부.pixerate-video-montage: 비트에 따른 선택, 페이싱, 전환, 음악 및 엔딩.
작업 방법
- 읽기.
get_video_project로 설정, 에셋, 트랙, 클립(종료 및 소스 범위 포함), 각 중첩 시퀀스 요약, 마커 및 문제를 확인합니다. 컴파운드 클립이 있는 경우list_video_sequences는 포함된 내용을 보여줍니다. 프로젝트가 새 프로젝트인 경우 먼저set_video_settings로 프레임 크기와fps를 설정하고, 나중에 변경하면 프레임 기반 제한이 이동합니다. - 미디어 가져오기. 각 파일에 대해
kind,src및 소스duration(없으면 트림을 확인할 수 없고check_video_project가unknown-duration경고)을 사용하여add_video_asset을 호출합니다. 비디오의 경우poster를 제공하여 렌더링된 프레임에 그림이 표시되도록 합니다. - 구조 표시. 비트, 섹션 또는 검토 노트에
add_video_marker를 추가합니다. 클립 가장자리는 UI에서 마커에 스냅되고 마커는seek_video대상을 만듭니다. - 한 배치로 조립. 러프 컷을 위해
edit_video를 사용합니다:add_asset,add_track, 그런 다음 순서대로add_clip연산을 수행하고 명시적인 클립 ID를 사용하여 이후 연산(트림, 전환)이 이를 참조할 수 있도록 합니다. 먼저dry_run: true로 실행하고, 오류는 실패한 연산의 이름을 지정합니다. - 세부 조정 단일 도구 사용:
trim_video_clip,split_video_clip,move_video_clip,update_video_clip,set_video_transition,delete_video_clips/close_video_gaps; 샷 간 타이밍에는 편집자가 사용하는 트림 모드를 사용합니다:roll_video_edit(컷 이동),slip_video_clip(샷이 표시하는 내용 변경),slide_video_clip(샷을 이웃 사이로 이동); 전체 구간에는split_video_at,lift_video_range또는extract_video_range를 사용합니다.set_video_keyframes로 불투명도, 볼륨 또는 위치를 애니메이션합니다. - 텍스트로 자르기 미디어에 음성이 있는 경우: 각 음성 에셋에 대해
set_video_transcript를 설정하고(또는get_video_project에서transcriptWords확인),get_video_transcript로 편집 내용을 읽은 다음find_video_fillers,find_video_pauses또는find_video_transcript_text를 사용하고 제거하려는 범위를 한 번의 호출로remove_video_ranges에 전달합니다. 그 후 대본을 다시 읽습니다. 컷이 이동할 때마다 다시 읽어야 합니다. - 확인.
check_video_project로 모든 오류와 경고를 수정하고,find_video_gaps로 의도하지 않은 검은색 또는 무음을 찾습니다. - 보고 듣기. 컷 및 전환에서
get_video_frame으로 레이어와 오디오 게인을 숫자로 확인하고,render_video_frame을times와 함께 사용하여 시퀀스의 콘택트 시트를 렌더링합니다. 모든 편집 후가 아니라 배치 후에 렌더링합니다. - 내보내기 요청 시:
export_video_ffmpeg(렌더링이 아닌 실행할 명령) 또는export_video_edl(하나의 트랙)을 사용하여 다른 곳에서 마무리합니다. 반환된 노트를 읽습니다. 전달 음량의 경우 호스트가 먼저export_video_loudness_measure를 실행하고 출력된 내용을loudness.measured로 전달하도록 합니다. 드래프트의 경우 한 번 패스(measured없는loudness)로 충분합니다. - 사용자가 확인해야 할 경우 먼저 계획. 크거나 판단이 많이 필요한 작업(러프 컷, 정리, 음악에 맞춰 자르기)의 경우 적용하는 대신
plan_video_edits(또는 대화 및 음악 스킬의plan_*도구)로 제안합니다. 프로젝트는 변경되지 않고, 편집기는 길이 변경과 자르는 구간과 함께 계획을 표시하며, 사용자가 동의하면apply_video_edit_plan으로 적용하거나(discard_video_edit_plan) 폐기합니다.list_video_edit_plans는 대기 중인 항목과 그 이후 프로젝트가 변경되었는지 여부를 보여줍니다. - 효과 (호스트가 효과 공급자를 등록한 경우에만, 그렇지 않으면
search_effects는available: false를 반환):use와 함께search_effects를 사용하고,describe_effect로 컨트롤을 확인한 다음apply_effect(클립의 필터 및 오버레이),set_video_effect_transition또는add_video_effect_clip(생성기 및 타이틀)을 적용합니다.update_effect와set_video_effect_keyframes로 조정하고,get_video_frame(레이어 목록effects) 및list_applied_effects로 확인합니다. 경로를 따라가는 효과(경계선을 따라가는 빔, 트레일, 쓰여진 단어 등):search_effects를accepts: ["path"]와 함께 사용하고, 클립 또는 클립 효과로 추가한 다음 프레임points, 경로 데이터d, 클립의mask윤곽선 또는text와 함께set_video_effect_path를 설정합니다. - 카메라 움직임(Flair와 같은 카메라 움직임을 제공하는 공급자): 클립이 샷입니다.
role과 함께list_video_camera_moves를 사용하고set_clip_camera_move를 설정합니다:transition은 클립 시작부터from에서framing으로 이동하고(글라이드, 휩 팬, 펀치 줌),hold는 클립의 나머지 부분에서framing으로 재생됩니다(스틸의 Ken Burns 드리프트). 움직임은 클립의 x, y, scale 및 rotation 키에 프로젝트의 fps로 굽혀지며, 컷에서 두 개의 키가 생성되므로 미리보기 및 내보내기가 공급자 없이 재생됩니다.get_video_frame으로 확인합니다. - 시퀀스 템플릿(템플릿을 제공하는 공급자): 기성 오프닝, 리빌 또는 카운트다운의 경우
list_templates를 사용하고,describe_template으로 슬롯을 확인한 다음values(exampleValues에서 시작) 및at과 함께fill_template을 사용합니다. 하나의 실행 취소 단계로 다른 트랙 위에 새 트랙에 배치됩니다. 각 샷의 하단 레이어는 샷의 전환을 전달하는 기본 트랙에 있고, 다른 레이어는 역할에 따라 효과, 그림 및 텍스트 클립으로 배치됩니다. 열린 슬롯은 회색 자리 표시자 클립(placeholders)으로 반환됩니다.add_video_asset및overwrite모드의add_video_clip으로 실제 그림을 그 위에 놓습니다. 카메라 움직임은 이전되지 않습니다.set_clip_camera_move로 추가합니다.
모범 사례
- 동작 중 컷. 움직임(회전, 문 열기) 중에 컷을 배치하여 동작의 연속성이 컷을 숨기도록 합니다.
split_video_clip을 동작 지점에서 사용한 다음 나가는 쪽과 들어오는 쪽을 트리밍합니다. - 점프 컷 피하기. 거의 같은 프레이밍에서 같은 피사체의 두 연속 샷은 결함처럼 읽힙니다. 각도나 크기를 변경하거나, 더 높은 비디오 트랙에 B-롤로 컷을 덮거나, 의도적으로 만듭니다.
- J 및 L 컷. 사운드가 그림을 앞서거나 뒤따르도록 합니다: 미디어의 사운드를 오디오 트랙(동일한 비디오 에셋의 클립)에 배치하고, 비디오 클립을 음소거(
muted: true)한 다음roll_video_edit으로 오디오 컷을 그림 컷보다 빠르게(J) 또는 늦게(L) 이동합니다. 이는 대화와 장면 전환을 부드럽게 합니다. - 전환은 드물게. 직선 컷이 기본입니다. 시간의 흐름이나 부드러운 장면 전환에는
crossfade를, 섹션 분할에는dip(검은색 또는color로)을,wipe는 드물게 사용합니다. 짧게 유지합니다(300-1000ms).push와slide는 그래픽, 몽타주 및 소셜 편집에 더 적합하고 드라마에는 덜 적합합니다.iris는 양식화된 시대 또는 만화 효과입니다.dip를 제외한 모든 유형은 핸들이 필요합니다: 두 클립 모두에서 컷 이후 사용되지 않은 미디어의 절반 지속 시간.dip는 핸들이 필요하지 않습니다. - 삽입 대 덮어쓰기.
add_video_clip및move_video_clip은mode를 사용합니다:refuse(기본값, 오류는 다음 여유 공간 이름 지정),overwrite(아래 있는 것을 대체, 덮어쓰기 편집처럼),insert(이후 자료를 밀어냄). 트림 및 삭제에는ripple: true를 사용하고,lift_video_range보다extract_video_range를 사용하여 편집 후 모든 항목을 간격 없이 동기화 상태로 유지합니다. 리플 및 삽입은 잠금 해제된 모든 동기화 잠금 트랙을 이동하므로 대화와 그림이 함께 유지됩니다. 제자리에 있어야 하는 음악 배경의 경우update_video_track으로syncLocked를 끕니다. - 올바른 도구로 트리밍. 다른 것을 이동하지 않고 컷이 발생하는 시점을 변경하려면
roll_video_edit, 샷이 보여주는 순간을 변경하려면slip_video_clip, 샷을 다른 두 샷 사이에서 더 일찍 또는 늦게 이동하려면slide_video_clip을 사용합니다. 세 가지 모두 타임라인을 간격 없이 유지하고 실제로 적용된 델타(사용 가능한 미디어로 제한됨)를 보고합니다. - 키프레임은 드물게.
set_video_keyframes를 푸시인(샷 전체에서scale1에서 1.1로), 대화 아래 덕킹(volume) 또는 가장자리가 아닌 페이드에 사용합니다. 모션에는 선형보다 이징(ease-in-out)을 사용합니다. 클립 가장자리의 간단한 페이드는fadeIn/fadeOut입니다. - 먼저 텍스트로 대화 다듬기. 대본이 있는 경우 찾기 도구와 한 번의
remove_video_ranges로 필러와 일시 중지를 제거합니다. 먼저 필러 목록을 검토합니다("you know"는 의도적일 수 있음). 단어 주변에 150-300ms를 유지(keep)하여 말이 숨 쉴 수 있도록 합니다. 대본이 없으면 아래와 같이 사운드 자체를 사용합니다. - 귀와 숫자로 대화 다듬기. 인터뷰 또는 음성 해설 클립에서
find_video_silences는 타임라인 시간의 일시 중지를 나열합니다. 긴 것을 추출합니다(양쪽에 150-300ms를 유지하여 말이 잘린 것처럼 들리지 않도록 함: 각 범위를extract_video_range전에 축소하고 마지막 일시 중지에서 첫 번째 일시 중지까지 추출하거나 다시 읽습니다. 각 추출은 이후 항목을 이동하기 때문입니다).get_video_audio_levels를 사용하여 트리밍 또는 분할 전에 라인이 시작되는 위치를 찾습니다. - 강조를 위한 속도 램프. 중요한 순간(점프, 리빌) 직전에 슬로우 모션으로 램프 업하고 그 후에 다시 램프 아웃합니다: 하드 변경 대신 300-600ms 글라이드(
toSpeed)와 함께set_video_speed_ramp를 사용하고 슬로우 모션은 약 0.25-0.5입니다. 프리즈 프레임(1-2초)은 타이틀이나 "그게 나야" 순간에 적합합니다.add_video_freeze_frame으로 추가합니다. 램프된 사운드는 스텝 처리되고 프리즈에서는 무음이므로 램프된 샷 아래에 자체 사운드 대신 음악이나 효과를 배치합니다. - 간격 닫기. 의도하지 않은 간격은 배경색과 무음으로 재생됩니다.
find_video_gaps를 사용한 다음close_video_gaps또는 리플 삭제를 사용합니다. 검은색을 원하는 경우에만 간격을 남깁니다. - 프레임 단위로 자르기. 시작, 트림 및 분할을 프레임 경계(1000/fps ms의 배수, 24fps에서 41.667, 30fps에서 33.333)에 배치합니다. 편집은 반올림하지 않습니다.
- 오디오 레벨. 대화가 기준입니다. 음악을 그 아래에 유지하고(음성 아래에서는 볼륨 약 0.2-0.4, 줄 사이에서는 더 높게) 클리핑되는 1 이상의 게인을 피합니다. 클립별
volume과 트랙volume은 곱해집니다. 중간 사운드에서 시작하거나 끝나는 각 오디오 클립에 짧은fadeIn/fadeOut(10-50ms)을 제공하여 클릭을 방지합니다. 음악 배경은 1-3초에 걸쳐 페이드합니다. 사운드 페이드를fadeInCurve/fadeOutCurve로 모양을 만듭니다: 두 사운드가 겹치는 곳에서는equal-power(선형이 중간에서 딥되는 곳에서 음량을 일정하게 유지, 크로스페이드 및 와이프의 경우audioCurve는 이미 기본값), 음악을 자연스럽게 무음으로 페이드 아웃하려면exponential, 부드러운 시작과 끝을 위해s-curve. 선형이 기본값입니다. - 전달 음량. 클립 볼륨을 푸시하는 대신 최종 믹스를 정규화합니다: 웹 및 스트리밍의 경우 -14 LUFS, 팟캐스트의 경우 -16, 방송의 경우 -23(EBU R128) 또는 -24(ATSC), 실제 피크는 -1 dBTP 이하. 두 번 패스하면 다이내믹이 유지되고 한 번 패스는 레벨을 조정합니다.
- 그레이딩은 두 번 패스: 보정 후 룩. 먼저 각 샷의 균형을 맞춰 장면이 일치하도록 합니다(
update_video_clipgrade: 가장 좋은 샷에 대해 노출과 화이트 밸런스를 수정한 다음copy_video_grade로 나머지 장면에 복사), 그런 다음 적당한amount(0.3-0.6)로apply_video_grade_preset을 사용하거나 사용자가 가지고 있는.cube룩을strength0.5-0.8(필름 에뮬레이션과 크리에이티브 LUT는 최대 강도에서 강함)로set_video_lut을 사용하여 룩을 추가합니다. LUT는 그레이드 설정 후 실행되므로 먼저 노출과 화이트 밸런스를 보정합니다. 로그 푸티지용으로 제작된 LUT는 평평한 그림을 예상하며 일반 비디오에서는 으스러져 보입니다. 몇 가지를 나란히render_video_frame으로 확인합니다. 피부 톤이 기준입니다: 사람에 대해 강한hue또는tint를 피합니다. - 샷 전체의 룩을 위한 조정 클립. 장면의 모든 클립을 동일하게 그레이딩하는 대신 위 트랙에
add_video_adjustment_clip을 룩(grade,amount의preset, 또는 조정 클립에apply_effect가 있는 효과)과 함께 배치합니다. 재생되는 동안 아래 모든 것을 변경하므로 트림과 새 샷이 룩을 적용받습니다. 범위all은 위의 타이틀과 트랙을 포함하고, 범위track은 하나의 트랙으로 제한합니다. 페이드 인/아웃(fadeIn/fadeOut)하여 룩을 부드럽게 적용하고, 프레임 일부로 제한하는 마스크를 제공합니다. - 부분 변경을 위한 마스크.
set_video_clip_mask는 클립을 모양으로 자릅니다(얼굴이나 비네트용ellipse, PIP용corner_radius가 있는rectangle, 분할 화면 또는 그라데이션 하늘용linear, 마스크는 클립 또는 트랙 레벨, 그 위의 모든 트랙에 적용됩니다). - 색상 그레이딩 보호.
set_video_color_skin_protection은 피부 톤 범위의 색상 변경을 제한합니다. 사람이 있는 샷에 강한 그레이드를 적용할 때 유용합니다. - 최종 확인. 프로젝트를 내보내기 전에
check_video_project를 실행하고 모든 경고(간격, 알 수 없는 지속 시간, 누락된 에셋)를 수정합니다. - 버전 관리.
get_video_project를 자주 호출하여 상태를 확인하고 편집 후 프로젝트를 다시 읽습니다.plan_video_edits를 사용하여 되돌릴 수 없는 변경을 방지합니다.
도구 참조
get_video_project: 설정, 에셋, 트랙, 클립, 마커, 중첩 시퀀스, 문제를 반환합니다.set_video_settings: 프레임 크기, FPS, 배경색을 설정합니다.add_video_asset: 미디어 파일을 에셋 라이브러리에 추가합니다.add_video_marker: 타임라인에 마커를 추가합니다.edit_video: 하나의 배치에서 여러 편집 연산을 실행합니다(dry_run 지원).trim_video_clip: 클립의 시작 또는 끝을 자릅니다(리플 지원).split_video_clip: 클립을 지정된 시간에 둘로 나눕니다.move_video_clip: 클립을 새 시간 위치로 이동합니다(모드: refuse, overwrite, insert).update_video_clip: 클립 속성을 업데이트합니다(볼륨, 속도, 페이드, 등급, LUT 등).set_video_transition: 두 클립 사이에 전환을 설정합니다.delete_video_clips: 클립을 삭제합니다(리플 지원).close_video_gaps: 타임라인의 모든 간격을 닫습니다.roll_video_edit: 컷 포인트를 이동합니다(리플 없음).slip_video_clip: 클립의 In/Out 포인트를 함께 이동하여 표시되는 내용을 변경합니다.slide_video_clip: 클립을 이웃 사이에서 이동합니다(리플 없음).split_video_at: 주어진 시간에 모든 트랙을 분할합니다.lift_video_range: 시간 범위를 제거하고 간격을 남깁니다.extract_video_range: 시간 범위를 제거하고 간격을 닫습니다(리플).set_video_keyframes: 클립 속성에 키프레임 애니메이션을 설정합니다.set_video_transcript: 음성 에셋에 대한 대본을 설정합니다.get_video_transcript: 편집된 대본을 읽습니다.find_video_fillers: 필러 단어(um, uh, like)를 찾습니다.find_video_pauses: 일시 중지를 찾습니다.find_video_transcript_text: 대본에서 텍스트를 검색합니다.remove_video_ranges: 대본 범위를 제거하고 타임라인을 업데이트합니다.check_video_project: 프로젝트의 오류와 경고를 확인합니다.find_video_gaps: 타임라인의 간격을 찾습니다.get_video_frame: 단일 프레임을 레이어 및 오디오 레벨과 함께 반환합니다.render_video_frame: 여러 프레임을 콘택트 시트로 렌더링합니다.export_video_ffmpeg: FFmpeg 내보내기 명령을 생성합니다.export_video_edl: CMX 3600 EDL을 내보냅니다.plan_video_edits: 편집 계획을 제안합니다.apply_video_edit_plan: 계획을 적용합니다.discard_video_edit_plan: 계획을 폐기합니다.list_video_edit_plans: 대기 중인 계획을 나열합니다.search_effects: 사용 가능한 효과를 검색합니다.describe_effect: 효과 컨트롤을 설명합니다.apply_effect: 클립에 효과를 적용합니다.set_video_effect_transition: 효과 전환을 설정합니다.add_video_effect_clip: 효과 클립(생성기, 타이틀)을 추가합니다.update_effect: 효과 매개변수를 업데이트합니다.set_video_effect_keyframes: 효과 속성에 키프레임을 설정합니다.set_video_effect_path: 경로 효과의 경로를 설정합니다.list_video_camera_moves: 사용 가능한 카메라 움직임을 나열합니다.set_clip_camera_move: 클립에 카메라 움직임을 적용합니다.list_templates: 사용 가능한 시퀀스 템플릿을 나열합니다.describe_template: 템플릿 슬롯을 설명합니다.fill_template: 템플릿을 값으로 채웁니다.add_video_adjustment_clip: 조정 클립을 추가합니다.set_video_clip_mask: 클립에 마스크를 적용합니다.set_video_color_skin_protection: 피부 톤에 대한 색상 보호를 설정합니다.copy_video_grade: 한 클립에서 다른 클립으로 그레이드를 복사합니다.apply_video_grade_preset: 그레이드 프리셋을 적용합니다.set_video_lut: LUT를 적용합니다.find_video_silences: 오디오에서 무음 구간을 찾습니다.get_video_audio_levels: 오디오 레벨을 반환합니다.set_video_speed_ramp: 클립에 속도 램프를 설정합니다.add_video_freeze_frame: 프리즈 프레임을 추가합니다.export_video_loudness_measure: 전달 음량을 측정합니다.list_video_sequences: 중첩 시퀀스를 나열합니다.update_video_track: 트랙 속성을 업데이트합니다(동기화 잠금 등).add_video_asset: 새 미디어 에셋을 추가합니다.add_video_clip: 타임라인에 클립을 추가합니다.add_track: 새 트랙을 추가합니다.- ... (전체 도구 목록은 Pixerate API 문서 참조)