영상을 90도 회전해 저장하는 방법

ffmpeg의 transpose 필터로 영상을 90도 회전하세요. clock은 시계 방향, cclock은 반시계 방향으로 돌리며, Sume의 영상 필터는 결과를 새 MP4로 저장합니다.

읽는 시간 4분Sume
전체 글

영상을 90도 회전해 저장하려면 ffmpeg의 transpose 필터로 클립을 재인코딩하세요. transpose=clock은 화면을 시계 방향으로 90° 돌리고 transpose=cclock은 반시계 방향으로 90° 돌리므로, 프레임의 너비와 높이가 서로 바뀝니다. Sume에서는 이미 Sume에 호스팅된 클립이라면 이 필터를 POST /v1/video-filter의 filtergraph로 보내세요. 새 방향으로 돌아간 새 MP4를 돌려받습니다.

FFmpeg 관련 내용은 FFmpeg의 ffmpeg 도구와 필터 문서를, Sume 관련 내용은 영상 필터 문서와 Sume API 레퍼런스를 기준으로 하며, 모두 2026-09-27에 확인했습니다. Sume가 받는 필터 이름은 Sume의 필터 컴파일러에서 확인한 것으로, 현재 동작을 설명합니다.

어떤 transpose 값이 영상을 어느 방향으로 돌리나요?

로컬 컴퓨터에서는 FFmpeg가 파일을 재인코딩하면서 -vf로 필터를 적용합니다. ffmpeg -i input.mp4 -vf transpose=clock output.mp4는 시계 방향으로 90° 돌린 사본을 저장합니다.

transpose는 방향을 받습니다. FFmpeg 문서는 숫자 값을 지원 중단(deprecated)으로 표시하고 이름을 쓰도록 권하지만, 스크립트에서는 둘 다 여전히 볼 수 있으므로 표에 둘 다 적었습니다. 값 없이 쓴 transpose는 단순 회전이 아닙니다. 기본값인 cclock_flip은 화면을 상하로 뒤집기도 합니다.

  • 가로 클립만 회전하려면 passthrough를 추가하세요. transpose=dir=clock:passthrough=portrait는 높이가 너비 이상인 클립은 그대로 둡니다.
FFmpeg 필터 문서 기준 방향, 2026-09-27 확인.
filtergraph이전 숫자 표기결과
transpose=clocktranspose=1시계 방향 90°
transpose=cclocktranspose=2반시계 방향 90°
transpose=cclock_fliptranspose=0(기본값)반시계 방향 90°, 상하 반전
transpose=clock_fliptranspose=3시계 방향 90°, 상하 반전

Sume API로 영상을 90도 회전하려면 어떻게 하나요?

클립과 필터를 POST /v1/video-filter로 보내세요. video_url은 앞서 실행한 Sume Job의 출력처럼 이미 워크스페이스에 있는 media.sume.com 아티팩트나 에셋이어야 합니다. 영상 필터는 공개 인터넷에서 파일을 가져오지 않고, Sume에는 컴퓨터에 있는 파일을 올리는 공개 업로드 경로도 없습니다(엔드포인트별로 받는 URL). 인코딩에는 Idempotency-Key가 필요합니다.

  • 먼저 무료로 검사하세요. POST /v1/video-filter/check는 같은 본문을 받아 같은 스키마, 허용 목록, 소스 검사를 실행하고, 400 대신 진단 결과를 반환합니다. Job을 만들지 않고 크레딧도 예약하지 않습니다.
  • 기본 mode는 async이므로 GET /v1/jobs/:id/status를 폴링한 뒤 GET /v1/jobs/:id/result를 읽으세요. kind: video_filter 결과에는 소스가 아닌 새 video_url이 담기며, 소스는 그대로 남습니다. mode: "sync"는 완료된 Job을 최대 30초 기다립니다.
  • 문서에 따르면 프로그램이 바꾸지 않는 한 출력은 소스의 기하 정보, 프레임 레이트, 오디오를 이어받습니다. 회전은 기하 정보를 바꾸므로, 1920×1080 클립은 1080×1920으로 돌아오고 프레임 레이트와 오디오는 그대로 유지됩니다.
curl -X POST https://api.sume.com/v1/video-filter \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: rotate-clip-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/sideways.mp4",
    "filtergraph": "transpose=clock"
  }'

영상을 180도나 몇 도만 회전하려면 어떻게 하나요?

반 바퀴를 돌리려면 transpose=clock,transpose=clock처럼 90도 회전을 두 번 이어 붙이거나, hflip,vflip으로 화면을 좌우와 상하로 모두 뒤집으세요. transpose, hflip, vflip은 모두 현재 Sume의 허용 목록에 있습니다.

살짝 기울이려면 역시 허용 목록에 있는 rotate를 쓰세요. 각도를 라디안으로 받아 시계 방향으로 돌리며, 음수 각도는 반시계 방향으로 돌립니다. FFmpeg 문서의 예는 rotate=45*PI/180으로 45도 회전하므로, 5도를 바로잡으려면 rotate=5*PI/180을 쓰면 됩니다. 출력은 기본적으로 입력의 너비와 높이를 유지하므로, 돌아간 화면의 모서리는 잘리고 화면이 덮지 못한 영역은 fillcolor(기본값 검은색)로 채워집니다.

회전하면 가로 영상이 세로 영상이 되나요?

회전은 프레임의 모양을 바꿀 뿐 구도는 바꾸지 않습니다. 회전한 가로 클립은 장면이 옆으로 누운 세로 프레임이 됩니다. 가로 샷을 똑바로 세운 채 9:16 프레임에 넣으려면, 가로 영상을 세로로 변환하기처럼 회전 대신 잘라 내거나 프레임에 맞춰 넣으세요.

비용은 얼마이고, 한도는 어떻게 되나요?

Job 하나는 클립 하나를 회전하므로, 여러 클립을 처리하려면 클립마다 Job이 하나씩 필요하고 Job마다 고유한 Idempotency-Key를 씁니다. 검사는 무료이고, 인코딩은 GET /v1/catalog에 나온 요율로 Job당 과금되며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. 그래프 규칙과 인코더 설정은 Sume의 ffmpeg 필터 허용 목록에 있습니다.

영상 필터와 Sume API 레퍼런스 기준, 2026-09-27 확인.
한도문서 내용
소스 길이최대 300초. 더 긴 소스는 output_duration_exceeded로 실패함.
소스 URL워크스페이스의 media.sume.com 아티팩트나 에셋. 호스트 밖 URL은 접수 단계에서 거부됨.
HDR 소스PQ와 HLG 소스는 hdr_source_unsupported로 거부됨.

출처

관련 글

미디어 도구 카테고리의 다른 글

미디어 도구 글 전체 보기

작성자 Sume