오버레이 이미지 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

if및 lte표현식에 의해 간단하게 할 수 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.