FFMpeg : 비디오 위에 원형 마스크 추가


1

비디오 중앙의 원 안에 마스킹하려는 비디오가 있습니다. 정사각형 마스크를 사용할 수 있다는 것을 알았지 만 어떻게 원을 만들 수 있습니까 (이미지를 가리지 않고 마스크를 씌우지 않고)?

답변:


1

반전 마스크를 사용한다고 가정하면

ffmpeg -y -i video.mp4 -loop 1 -t 1 -i mask.png
  -filter_complex
      "color=black:d=1[c];[c][0]scale2ref[cs][v];[cs]setsar=1[ct];
       [1:v]alphaextract,negate[m];[m][ct]scale2ref[ms][ol];[ms]setsar=1[alf];
       [ol][alf]alphamerge[fin];
       [v][fin]overlay,scale‌​=640:1136:force_orig‌​inal_aspect_ratio=de‌​crease[fv];
       [fv]pad=6‌​40:1136:(ow-iw)/2:(o‌​h-ih)/2:#000000@1[v]‌​"
-map "[v]" -map 0:a output.mp4

먼저 검은 색 오버레이가 생성됩니다. 비디오 크기로 크기가 조정됩니다. 그런 다음 마스크의 크기가 오버레이 크기로 조정됩니다. 그런 다음 알파 채널이 추출되고 무효화됩니다. 컬러 오버레이와 병합되었습니다. 결과는 비디오에 오버레이되고 결과는 필요에 따라 크기가 조정되고 검은 색으로 채워집니다.

마스크가 뒤집 히지 않으면을 제거하십시오 negate.


우리의 선이 교차하지 않도록하기 위해 다른 곳에서 조롱 된 출력의 샘플 프레임을 보여줄 수 있습니까? ZIP 파일에서 비디오는 이미 원 안에 있으며 마스크 PNG의 알파 채널이 반전됩니다. 즉 PNG의 RGB 채널에있는 검은 색 원은 불투명하지 않습니다. 알파를 컬러 출력에 적용하면 해당 부분이 표시됩니다.
Gyan

또한 마스크와 비디오의 크기가 다릅니다.
Gyan

필요한 출력의 샘플 이미지를 게시하면 마스크 크기 조정과 함께 명령을 표시 할 수 있습니다.
Gyan

최신 ZIP에서 소스 비디오는 이미 원형이며 결과에 흰색 패딩이 없습니다. 즉, 저울과 패드 만 있으면됩니다. 마스크가 필요하지 않습니다. 맞습니까?
Gyan

1
이 오류가 발생합니다[AVFilterGraph @ 0x7fbd57d033c0] No such filter: 'scale‌​' Error initializing complex filters. Invalid argument
rraallvv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.