비디오 중앙의 원 안에 마스킹하려는 비디오가 있습니다. 정사각형 마스크를 사용할 수 있다는 것을 알았지 만 어떻게 원을 만들 수 있습니까 (이미지를 가리지 않고 마스크를 씌우지 않고)?
비디오 중앙의 원 안에 마스킹하려는 비디오가 있습니다. 정사각형 마스크를 사용할 수 있다는 것을 알았지 만 어떻게 원을 만들 수 있습니까 (이미지를 가리지 않고 마스크를 씌우지 않고)?
답변:
반전 마스크를 사용한다고 가정하면
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_original_aspect_ratio=decrease[fv];
[fv]pad=640:1136:(ow-iw)/2:(oh-ih)/2:#000000@1[v]"
-map "[v]" -map 0:a output.mp4
먼저 검은 색 오버레이가 생성됩니다. 비디오 크기로 크기가 조정됩니다. 그런 다음 마스크의 크기가 오버레이 크기로 조정됩니다. 그런 다음 알파 채널이 추출되고 무효화됩니다. 컬러 오버레이와 병합되었습니다. 결과는 비디오에 오버레이되고 결과는 필요에 따라 크기가 조정되고 검은 색으로 채워집니다.
마스크가 뒤집 히지 않으면을 제거하십시오 negate
.
[AVFilterGraph @ 0x7fbd57d033c0] No such filter: 'scale' Error initializing complex filters. Invalid argument