내보내기
OpenChatCut의 내보내기 도구를 사용하여 전달합니다. 내보내기 요청은 submit_export(또는 비동기식으로는 submit_render_job)를 호출한 다음, 결과가 즉시 반환되지 않는 경우 track_export를 사용하여 상태를 확인하고 최종 전달합니다.
기본 정책:
- 사용자가 OpenChatCut 타임라인을 내보내기/공유/최종화하도록 요청하면
submit_export를 선호합니다. - 편집 중에는 기본적으로 원본을 로컬에 유지합니다. 클라우드 내보내기/증명에 원격 에셋이 필요하고 사용자가 업로드를 금지하지 않은 경우에만 원본을 업로드합니다.
- 샌드박스
ffmpeg작업을 OpenChatCut 도구로 래핑하지 마십시오. 사용자가 OpenChatCut 편집 워크플로우 외부에서 독립적인 로컬 파일 작업을 명시적으로 요청하는 경우에만 전체 비디오 처리를 위해 샌드박스ffmpeg를 사용하십시오. OpenChatCut 편집 작업의 경우, 사전 편집되거나 평면화된 로컬 렌더를 기본 검토/최종 전달물로 생성하지 말고 OpenChatCut 내보내기를 사용하십시오.
지속적 내보내기
실행 경로에 submit_export를 사용합니다:
{
"format": "video",
"codec": "h264",
"resolution": "1080p",
"fps": 30,
"name": "final-cut"
}
비디오 코덱 옵션은 h264(MP4, 기본값) 및 vp8(WebM)입니다. 비디오 프레임 속도 옵션은 편집기 UI와 일치합니다: 24, 25, 30, 50 또는 60; 타임라인과 일치시키려면 fps를 생략합니다. 오디오 내보내기는 MP3입니다: "format":"audio"를 전달하고, 명시적으로 "codec":"mp3"를 전달하지 않는 한 codec/fps를 생략합니다.
submit_export는 지속적인 renderId를 반환합니다. 자막 파일과 같은 일부 내보내기 유형은 즉시 완료되어 downloadUrl을 반환할 수 있습니다. 비디오/오디오는 일반적으로 완료를 기다리기 위해 track_export가 필요합니다.
각 downloadUrl을 얻은 후:
- 사용자의 다운로드 폴더를 확인합니다: macOS/Linux의 경우
~/Downloads, Windows의 경우%USERPROFILE%\Downloads. - 에이전트/브라우저 다운로드를 실행하기 전에 다운로드 폴더에서 지난 몇 분 동안의 예상 내보내기 이름, 확장자 또는 렌더/다운로드 URL 기본 이름과 일치하는 새로운 Chrome 다운로드 아티팩트가 있는지 확인합니다. 완료된 파일과 진행 중인
.crdownload파일을 모두 포함합니다. - 일치하는 새로운
.crdownload파일이 있으면 다른 다운로드를 트리거하지 마십시오. Chrome이.crdownload접미사를 제거하고 최종 파일 크기가 더 이상 변경되지 않을 때까지 기다린 다음 해당 완료된 파일을 사용합니다. - 일치하는 새로운 완료된 파일이 이미 있으면 다시 다운로드하지 않고 직접 사용합니다.
- 이전 파일만 있는 경우 충돌로 처리하고 현재 내보내기로 간주하지 않습니다.
- 기존 파일을 덮어쓰지 마십시오. 필요한 경우
name (1).mp4와 같은 안전한 번호가 매겨진 파일 이름을 선택합니다. - 완료된 내보내기 파일을 temp/workspace 디렉토리가 아닌 항상 다운로드 폴더에 다운로드합니다.
- 다운로드한 비디오를 항상 채팅에 인라인으로 표시합니다. 여러 개의 내보낸 비디오가 있는 경우 첫 번째 비디오뿐만 아니라 모두 다운로드하고 모든 미리보기를 표시합니다.
프로젝트에 로컬 전용 에셋이 포함된 경우 렌더링 전에 클라우드에서 읽을 수 있는 대체 파일을 업로드/등록하거나, 사용자가 로컬로 유지하려는 경우 로컬 CLI 내보내기 경로를 사용합니다.
반환된 renderId가 있으면 보고합니다. 작업은 편집기 오른쪽 상단의 내보내기 대기열에도 표시되며 진행 상황 및 취소를 포함합니다. 사용자가 결과를 내 자료에 보관하도록 요청하거나 활성 워크플로우가 livestream-to-clips와 같이 자동 구체화를 명시적으로 기본값으로 설정하는 경우 saveToMediaPool:true를 사용합니다. 그렇지 않으면 기본값은 일반 다운로드 가능한 내보내기로 유지됩니다. 긴 비디오의 경우 track_export를 action:"wait" 및 timeoutSeconds:20과 함께 한 번 호출합니다. waitExpired:true가 반환되면 렌더링이 백그라운드에서 계속된다고 보고하고 턴을 종료합니다. 나중에 action:"status"로 확인합니다. 반복된 대기는 에이전트 턴을 열린 상태로 유지합니다. 이 렌더가 활성화되어 있는 동안 동일한 타임라인에 대해 다른 내보내기를 시작하지 마십시오.
사용자가 내보내기/렌더 상태에 대해 묻거나 현재 턴에서 제출된 비디오/오디오 렌더를 기다려야 하는 경우 track_export를 사용합니다. 완료된 커넥터 내보내기는 downloadUrl을 반환합니다. 완료된 각 항목에 대해 위의 충돌 방지 규칙을 사용하여 파일을 다운로드 폴더에 다운로드하고 채팅에 인라인으로 표시합니다:
{
"action": "status",
"renderIds": "abc123"
}
최신 프로젝트 내보내기의 경우 renderIds를 생략하고 "latest": true를 전달합니다. track_progress는 생성/전사/업로드 작업을 위한 것이며 렌더 작업이 아닙니다.
NLE XML의 경우 format:"xml"과 함께 submit_export를 사용합니다:
{
"format": "xml",
"nleFormat": "fcp_xml_resolve",
"timelineId": "abc123"
}
nleFormat 값은 Premiere XML의 경우 fcp_xml(기본값)이고 DaVinci Resolve XML의 경우 fcp_xml_resolve입니다. 활성 타임라인의 경우 timelineId를 생략하고, 비활성 타임라인의 경우 타임라인 ID/접두사를 전달합니다. 경고를 읽고 보고합니다: 캡션, 솔리드, SVG, 지원되지 않는 클립 속성 및 렌더링되지 않은 모션 그래픽은 XML 형식에서 삭제될 수 있습니다. 모션 그래픽은 투명 ProRes MG 내보내기 흐름이 motionGraphicRenderKeys를 제공하는 경우에만 XML로 표현됩니다. 그렇지 않으면 내보내기에서 삭제된 것으로 보고합니다.
미디어 풀 소스 다운로드의 경우 파일 기반 소스 에셋에 request_asset_download를 사용합니다. 원본 소스 미디어에 대한 보호된 백엔드 다운로드 URL/경로를 반환합니다. 사용자 다운로드에 pull_asset을 사용하지 마십시오. pull_asset은 샌드박스 전용입니다.
자막 파일의 경우 format:"subtitles"과 함께 submit_export를 사용합니다:
{
"format": "subtitles",
"subtitleFormat": "srt"
}
형식은 srt 및 txt입니다. 내보내기는 캡션 항목의 실제 타임라인 단어 타이밍, 소스 범위, 번역 변형, 표시 텍스트 재정의 및 wordsPerPage/maxCharactersPerLine과 같은 페이싱 필드를 사용하여 지속적인 다운로드 가능한 내보내기 작업을 생성합니다. 다운로드 가능한 자막 파일에 적합합니다. 아직 브라우저 Remotion 캡션 페이지 플래너를 재사용하지 않으므로 시각적 줄 바꿈/페이지 나누기는 타이밍은 정확하지만 바이트 단위로 구운 캡션 페이지 매김과 완전히 동일하지는 않습니다. 비활성 타임라인의 경우 manage_timelines 또는 read_project에서 timelineId를 전달합니다.
하나의 모션 그래픽을 투명 ProRes 4444로 내보내려면 export_motion_graphic_prores를 사용합니다:
{
"itemId": "abc123",
"filenameMode": "asset"
}
특정 타임라인 인스턴스를 내보낼 때는 itemId를 선호합니다. 항목은 편집된 텍스트와 같은 라이브 propertyOverrides를 전달하기 때문입니다. 미디어 풀 모션 그래픽의 경우 assetId를 사용합니다. 백엔드는 있는 경우 해당 에셋에 대한 첫 번째 타임라인 인스턴스를 사용하여 편집기의 미디어 풀 내보내기 동작과 일치시킵니다. 여러 모션 그래픽의 경우 한 번의 호출로 itemIds 또는 assetIds를 전달합니다. 각 모션 그래픽은 여전히 별도의 지속적인 렌더가 됩니다. 반환된 renderIds로 track_export를 사용하여 기다린 다음 각 반환된 렌더 다운로드 경로를 통해 다운로드합니다.
렌더링된 모션 그래픽을 참조해야 하는 XML을 준비할 때는 export_motion_graphic_prores에 "filenameMode":"xml"과 동일한 timelineId를 전달한 다음 반환된 motionGraphicRenderKey/motionGraphicRenderKeys를 유지합니다. 렌더가 완료된 후 submit_export.motionGraphicRenderKeys에 해당 키와 동일한 timelineId를 format:"xml"과 함께 전달합니다.
로컬 렌더(이 빌드)
모든 렌더링은 로컬입니다. submit_export/submit_render_job은 편집기가 표시하는 동일한 타임라인 상태를 통해 로컬 렌더 서비스(헤드리스 Chrome)를 구동하고, 디스크의 /media/uploads/에서 미디어를 직접 읽습니다. S3 요구 사항, CLI 또는 디스크 기반 에셋을 기다리는 클라우드 작업이 없습니다.
submit_export: 자막/XML은 동기식으로 반환됩니다. 이 빌드에서는 비디오/오디오도 호출 내에서 렌더링됩니다(긴 타임라인은 시간이 걸릴 수 있음 — 폴링 대신 사용자에게 경고).submit_render_job+track_export: 비동기 경로입니다. 즉시renderId를 반환하고track_export(renderIds/latest/onlyActive)로 폴링한 다음 반환된 다운로드 경로를 사용자에게 전달합니다.blob:자리 표시자(업로드 진행 중)에 있는 에셋은 아직 렌더링할 수 없습니다. 제출하기 전에track_progress target=upload가 준비되었다고 보고할 때까지 기다립니다.
대체
에셋의 바이트가 없어(자리 표시자가 다시 연결되지 않음, 파일이 디스크에서 삭제됨) 렌더링이 실패하는 경우:
- 사용자에게 내 자료(오프라인 자료 배너)에서 에셋을 다시 연결하거나 파일을 다시 가져오도록 요청합니다.
- URL 소스 미디어의 경우
download_media를 다시 실행하여 바이트를 복원한 다음 다시 제출합니다.
디버깅하지 않는 한 사용자에게 HTML-in-Canvas, Remotion 또는 스토리지 내부를 이해해야 한다고 말하지 마십시오. 제품 수준에서 설명하십시오:
- "로컬 빠른 내보내기"
- "자료가 아직 업로드 중입니다. 잠시 후 다시 내보내십시오."
- "로컬 자료를 먼저 다시 연결해야 합니다."
결과 추적
submit_export의 경우 다음을 기록합니다:
renderId- 타임라인/범위/해상도/코덱/fps
- 사용자가 편집기 렌더 작업 패널에서 다운로드할 수 있다는 정보
업로드된 에셋 ID와 클라우드 내보내기가 로컬 전용 에셋으로 인해 차단되었을 때 시도된 대체 방법을 기록합니다.