오버레이 이미지 ffmpeg의 왼쪽에서 오른쪽으로 전환하는 방법


3

아래 명령을 사용하여 비디오에서 오버레이 이미지를 왼쪽에서 오른쪽으로 전환했습니다.

ffmpeg -i Test.mp4 -i transparent.png -filter_complex "오버레이 = x = 'if (gte (t, 0), -w + (t) * 100, 3)': y = 450"out.mp4

오버레이 이미지가 왼쪽에서 오른쪽으로 계속 움직이고 있습니다. 왼쪽에서 오른쪽으로의 전환과 같은 특정 지점에서 중지해야합니다. 그렇게하는 방법?

답변:


9

허, 흥미로운 일. 그래서 해결책은

ffmpeg -i 1.ts -i 2.ts -filter_complex "[0:v][1:v]overlay=x='if(lte(-w+(t)*100,w/2),-w+(t)*100,w/2)':y=0[out]" -map '[out]' -y out.mp4

이 필터 그래프는 화면의 절반에 도달 할 때까지 두 번째 사진을 왼쪽에서 오른쪽으로 이동합니다 (w / 2). 따라서이 식에서 수정해야 할 것은 w / 2입니다. 일부 정적 정지 점 (100 픽셀)에 대해서도 동일합니다.

ffmpeg -i 1.ts -i 2.ts -filter_complex "[0:v][1:v]overlay=x='if(lte(-w+(t)*100,100),-w+(t)*100,100)':y=0[out]" -map '[out]' -y out.mp4

도움이 되길 바랍니다.


나는 여기에 다른 질문을 게시했습니다. superuser.com/questions/730062/ffmpeg-fade-between-images 당신이 도울 수 있습니까?
2vision2

iflte표현식에 의해 간단하게 할 수 min/의 max표현. 아래의 다른 답변을 참조하십시오. (처음에는 다른 질문을
위해이 글을 썼습니다

좋은! 왼쪽 대신 오른쪽에서 가져 오려면 어떤 값을 부정 / 반전해야합니까?
Kimberly W

1

슬라이딩 효과를 수행하는 방법?

일반적으로 슬라이드 효과의 경우 다음을 수행해야합니다.

  • colorsource를 사용하여 이미지가 표시 될 정확한 크기와 지속 시간으로 특정 색상 (예 : 검은 색)의 배경을 만듭니다 .
  • 소스 와 함께 이미지를 읽으십시오movie
  • 필터로 배경 위에 이미지를 오버레이overlay
  • 현재 프레임 번호 또는 타임 스탬프에 따라 오버레이의 좌표를 설정합니다

다음은 이미지를 image.png(크기 : 1920x1080, 클립 길이 : 15 초) 로 저장 한 예입니다 .

ffmpeg -f lavfi -i "\
color=black:d=15:s=1920x1080[background]; \
movie=image.png[overlay]; \
[background][overlay]overlay='W-n:(H-h)/2' \
" output.mp4

이미지가 멈추지 않고 오른쪽에서 왼쪽으로 미끄러집니다.

다음은 이미지가 중앙에서 멈춘 예입니다.

ffmpeg -f lavfi -i "\
color=black:d=15:s=1920x1080[background]; \
movie=image.png[overlay]; \
[background][overlay]overlay='min(W-n\,0):(H-h)/2' \
" output.mp4

슬라이딩 매개 변수를 제어하는 ​​방법

주어진 시간에 오버레이의 위치는 overlay필터 의 옵션으로 지정됩니다 . 위치는 이미지의 왼쪽 상단 모서리의 좌표로 제공되어야합니다.

위의 첫 번째 예에서 X / Y 좌표 쌍은 W-n및입니다 (H-h)/2.

  • W 배경 너비입니다 (1920)
  • n 현재 프레임 번호입니다
  • H 배경 높이 (1080)입니다.
  • h 오버레이 높이입니다 (여기서는 1080이지만 다를 수 있음)

따라서 프레임 0에서 이미지는 처음 부터 왼쪽에서 1920-0 = 1920 픽셀에 배치 되므로 n이 증가함에 따라 이미지가 오른쪽에서 미끄러 져 들어 갑니다.

몇 가지 팁 :

  • 슬라이딩 이미지의 속도를 높이려면 n 에 고정 된 수 를 곱해야합니다 .
  • 어떤 시점에서 이미지를 멈추려면 x식을로 평가해야 0하므로를 사용할 수 있습니다 min(W-n, 0). 이 경우 프레임 번호가 너비보다 큰 경우에도 이미지는 음의 x 위치로 이동하지 않지만 0에 머무 릅니다.
  • 이미지를 왼쪽에서 오른쪽으로 또는 아래에서 위로 슬라이드하려면 좌표에 대한 표현식을 적절히 수정하십시오.

해당 변수의 의미를 설명해 주셔서 감사합니다. 정말 도움이되었습니다.
r.mirzojonov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.