이 필터를 사용하여 자르기를 수행합니다.

-filter_complex "[0:v]crop=w=320:h=240[v0c] 

잘 작동합니다. 문제는 때때로 내가 얻을 입력이 무엇인지 모른다는 것입니다. 예를 들어 1000x500 또는 500x1000 일 수 있습니다. 그래서 그것이 발생하면 비디오 중앙의 작은 영역을 얻습니다. 이상적인 것은 입력 크기를 조정하여 원하는 출력에 맞게 크기를 조정하고 나머지는 자르는 것입니다. 문제는 어떤 차원이 될지 모른다는 것입니다.

이 문제를 해결하기 위해 필터를 어떻게 만들 수 있습니까?

댓글

  • 원하는 출력 크기는 무엇입니까?
  • 내가 작성한 명령에서와 같이 320×240

Answer

사용

[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c] 

x 및 y에 대한 스케일 필터 표현식은 입력의 종횡비를 확인하고 4보다 큰 경우 : 3, 값을 두 번째 인수로 설정하고 그렇지 않은 경우 세 번째 인수로 설정합니다. -1는 원래 가로 세로 비율이 유지되어야 함을 의미합니다. scale=-1:400600x800 캔버스에 적용하면 300x400가됩니다.

주석

  • 또한 원하는 출력이 다른 출력 인 경우이 명령이 계속 작동하고 320240?
  • 예. 또한 '가 다른 경우 가로 세로 비율을 업데이트하세요.
  • 그러면 16 : 9 또는 4 : 3과 같은 표준 가로 세로 비율이 항상 필요합니까? 322×239와 같은 임의의 해상도를 만들 수 없습니까?
  • 예. 여기서 종횡비는 원하는 출력 중 하나입니다. 따라서 대상이 234×787이면 '의 (a,234/787)
  • 수정 된 답변에 설명되어 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다