ffmpeg 회전된 이미지를 비디오에 오버레이합니다. 회전된 이미지로 덮이지 않은 출력 영역을 투명하게 하는 방법은 무엇입니까?

ffmpeg 회전된 이미지를 비디오에 오버레이합니다. 회전된 이미지로 덮이지 않은 출력 영역을 투명하게 하는 방법은 무엇입니까?

ffmpeg영화에 사진을 오버레이하는 데 사용하고 있습니다 . 요구 사항은 임의의 각도로 그림을 회전하는 것입니다. 를 사용하면 filter_complex이제 회전된 그림을 오버레이할 수 있습니다. 그러나 사진의 출력 영역은 검은색으로 채워져 투명하지 않습니다. 나는 확인했다문서, 다음에 따라 채우기 색상을 지정할 수 있다고 나와 있습니다.이것, 그러나 나는 그렇게 하지 못했습니다. 어떤 아이디어가 있나요?

여기에 명령줄을 복사합니다.

./ffmpeg -i mersyvideo.mp4 -i avatar.jpg -filter_complex "[1:v] rotate=-30*PI/180:c=black@'0x00':ow=rotw(iw):oh=roth(ih) [rotate];[0:v][rotate] overlay=40:10" -codec:a copy output/overlayavatar.mp4

답변1

덮지 않은 영역을 투명하게 채우려면 다음 옵션을 사용하십시오 c=none.

ffmpeg \
  -i mersyvideo.mp4 \
  -i avatar.jpg \
  -filter_complex "
  [1:v]rotate=-30*PI/180:c=none:ow=rotw(iw):oh=roth(ih)[rotate];
  [0:v][rotate]overlay=40:10
  " \
  -codec:a copy \
  output/overlayavatar.mp4

참조rotate필터 도움말:

fillcolor,c

회전된 이미지에 포함되지 않은 출력 영역을 채우는 데 사용되는 색상을 설정합니다. 이 옵션의 일반 구문은 ffmpeg-utils 매뉴얼의 (ffmpeg-utils)"색상" 섹션을 확인하세요. 특수 값 "none"을 선택하면 배경이 인쇄되지 않습니다(예를 들어 배경이 표시되지 않는 경우 유용함).

기본값은 "검은색"입니다.

관련 정보