![혼합 필터 FFMPEG에 인수를 전달하는 방법](https://rvso.com/image/1493956/%ED%98%BC%ED%95%A9%20%ED%95%84%ED%84%B0%20FFMPEG%EC%97%90%20%EC%9D%B8%EC%88%98%EB%A5%BC%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
5개의 이미지를 병합하고 결합한 후 깜박이는 비디오를 만들려고 합니다. 해당 이미지에 페이드인 페이드아웃 효과를 성공적으로 적용했습니다. FFMPEG는 나에게 여전히 상당히 새로운 것입니다.
내가 실행한 명령은 다음과 같습니다.
"-loop 1 -i "+path+"images_001.jpg " +
"-loop 1 -i "+path+"images_002.jpg " +
"-loop 1 -i "+path+"images_003.jpg " +
"-loop 1 -i "+path+"images_004.jpg " +
"-loop 1 -i "+path+"images_005.jpg " +
"-filter_complex " +
"[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];" +
"[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];" +
"[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];" +
"[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];" +
"[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v]concat=n=9:v=1:a=0,format=yuv420p[v] -map [v] "+path+"out.mp4"
on 이 명령을 실행하면 프로세스가 영원히 계속 실행됩니다. 그 일에 대한 나의 스크린샷이 있습니다:
나는 어리석은 것을 놓치고 있다는 것을 알고 있습니다. 나는 처음이기 때문에 ffmpeg
내가 여기서 잘못 가고 있는 부분에 대한 지식을 얻을 수 있다면 좋을 것입니다. 내가 무엇을 놓치고 있나요?
답변1
각 뒤에 x를 -loop 1
삽입합니다. -t x
여기서 x는 초 단위의 기간입니다.
답변2
blend에 대한 당신의 표현은 나에게 이해가 되지 않습니다. 당신은 무엇을하길 원합니까? Blend는 각 픽셀에 대해 다음과 같은 작업을 수행합니다. 픽셀 구성 요소 = 함수(A 입력의 픽셀 구성 요소, B 입력의 픽셀 구성 요소). 그렇다면 당신의 기능은 무엇을 해야 할까요? 매우 간단한 경우인 (A + B) / 2를 수행할 수 있습니다....