Mobidoo

오디오 분리

이 문서는 영문 원고를 AI로 번역한 내용이라 표현이 어색할 수 있습니다.

현재 SoT. Media L2 디먹스(sume/audio-detach-1.0, #5953). dest와 prod. 클립 검사가 아닙니다 — 검사는 비디오 검사입니다. 여러 구간이 필요하면 한 번 분리한 뒤 타임라인 오디오로 쪼개세요.

Audio detach 1.0은 워크스페이스의 하나의 media.sume.com 비디오를 받아 오디오 아티팩트를 반환합니다. 기본은 샘플 정확 wav (pcm_s16le)입니다 — timeline_create audio.url, POST /v1/timeline-1.0/audio, STT가 원하는 형태입니다. 비디오는 건드리지 않습니다. 서버가 워커 미디어 런타임에서 ffmpeg를 컴파일합니다(apps/api/src/routes.ts createAudioDetachV1 / submitSumeAudioDetachJob).

GET /v1/audio-detach/:id는 없습니다. Job 봉투로 폴링하세요:

호스티드 MCP: audio_detach(packages/mcp-server/src/mcp.ts). 쓰기는 idempotency_key가 필요합니다(OAuth에서는 mcp:write). 흐름: audio_detachjobs_waitjobs_result.

분리 만들기

필수: video_url(이 워크스페이스의 media.sume.com 아티팩트 또는 에셋). 공개 인터넷 fetch는 없습니다. 먼저 가져오세요 (POST /v1/media-imports). Idempotency-Key는 필수입니다.

선택: format, range, channels, sample_rate, 평소의 mode / webhook_url / wait_timeout_seconds 통신 필드입니다.

기본 mode는 **async**입니다. mode: "sync"를 주면 최대 30초 기다리고 끝난 Job을 200으로 주거나, 202로 폴링합니다.

성공한 submit은 Job을 반환합니다(request_id가 Job id). result_ready이면 GET /v1/jobs/:id/resultkind: audio_detach이고 audio_url(새 artf_), duration_seconds, format, channels, sample_rate(생략 시 null — 소스에서 상속), source_duration_seconds, 선택적 range / warnings[]를 담습니다.

공개 요금: Job당 $0.01(AUDIO_DETACH_PUBLIC_PRICING; 라이브는 GET /v1/catalog). 프로바이더 추론 없음 — 워커 ffmpeg만.

프로그램

필드효과
formatwav(기본, pcm_s16le 샘플 정확) 또는 mp3(128 kbps).
range선택 { start, end? } 초. 생략하면 트랙 전체. end를 생략하면 열린 구간.
channelssource(기본) 또는 mono.
sample_rate16000 | 44100 | 48000. 생략하면 소스를 상속. 16000 + channels: "mono"가 STT 형태.

상한(packages/api-contract/src/index.ts): 소스 ≤ 1800초; 출력 ≤ 900초. 트랙 전체가 900초를 넘으면 range가 필요합니다.

오디오 트랙이 없는 소스는 detach_source_has_no_audio로 실패합니다. 먼저 비디오 검사probe.has_audio를 확인하세요(frames: false면 충분).

거절(안정 코드)

코드언제
audio_detach_range_emptyrange.endrange.start, 또는 구간이 900초보다 김.
detach_source_has_no_audio소스에 오디오 트랙이 없음(워커).
detach_start_past_sourcerange.start가 프로브된 길이보다 뒤(워커).
ffmpeg_fields_rejected클라이언트가 af / filter / ffmpeg / cmd / codec 등을 보냄. 서버가 ffmpeg를 컴파일합니다.
unsupported_media_sourcevideo_url이 Sume 미디어 호스트가 아님.
source_not_found죽은 또는 다른 워크스페이스 media.sume.com URL.
unsupported_media_typeHEAD가 비디오가 아님.
source_duration_exceeded소스가 1800초보다 김(워커).

호스트 밖 URL(https://example.com/…)은 접수에서 거절됩니다. 먼저 가져오세요.

이 표면이 아닌 것

필요한 일쓸 것
프로브 / 스틸 / 선택적 STT비디오 검사
t의 소스 크기 프레임비디오 프레임
새 MP4 컷비디오 트림
픽셀 패스(dim / crop)비디오 필터
한 트랙에서 여러 오디오 구간한 번 분리한 뒤 타임라인 오디오 operation: "split"
여러 클립 시퀀스Timeline 1.0

관련 문서