ffmpeg를 사용하여 이미지 위에 비디오 오버레이


2

아래 명령을 사용하여 이미지에 비디오를 오버레이하려고합니다.

 -y -loop 1 -i snowflake.png
 -i crack.mp4
 -filter_complex "[0][1]scale2ref[i][m];[m][i]overlay[v]" -map [v] -map 0:a? -ac 2 output.mp4

위의 명령은 작동하지만 이미지의 비디오 대신 비디오의 이미지를 오버레이합니다.

나는 또한 아래 명령을 시도하지만, 파일을 찾을 수없는 오류가 발생하는 경로에서 파일 경로 구분 기호 '\'를 제거합니다.

-loop 1 -i C:\Users\Desktop\SAM\Effects\snowflake.png
-vf "movie=C:\Users\Desktop\SAM\Effects\crack.mp4,scale=128:96[inner];[in][inner]overlay=70:70:shortest=1[out]" -y output.mp4

내가 원하는 정확한 효과를 위해 youtube 비디오를 보았지만 그걸로 명령을 복사 했는데도 여전히 같은 오류가 발생하지 않았다. 이것은 명령이다.

-loop 1 -i C:\Users\Vivek\Desktop\SAM\Effects\A.jpg -i C:\Users\Vivek\Desktop\SAM\Effects\crack.mp4 -filter_complex "[1:v]colorkey=0x000000:0.5:0.5[ckout];[0:v][ckout]overlay[out]" -map "[out]" -c:a copy -c:v libx264 C:\Users\Vivek\Desktop\SAM\Effects\out.mp4

이 명령을 작동시키는 법.

아래는 오류 스크린 샷입니다. 오류가 로그에 나타나지 않기 때문에 여기에 로그를 게시 할 수 없습니다.

Error

참고로 : 저는 FFIFEG 바인드 자산을 사용하여 Unity에서 ffmpeg를 사용하고 있습니다.


귀하의 구성이 보여줍니다 '\' 경로 분리 기호로,하지만 당신은 얘기 '/': 무엇 이니? 오류 메시지가 표시되지 않았으므로 '\' 이스케이프 문자로 처리되므로 이중화하거나 사용할 필요가 있습니다. '/', 텍스트가 말한대로 (파일 시스템은 구분자를 처리합니다. '\' ).
AFH

@AFH 설명에 잘못된 구분 기호에 대해 사과드립니다. 나는 파일 경로에 대해 말하고있다.
Vivek Mishra

첫 번째 cmd에서 입력을 오버레이로 전환하고 최단 거리를 추가하십시오. [i][m]overlay=shortest=1[v]
Gyan

그런 다음 내 제안을 시도하고 질문에 오류 메시지를 추가하십시오.
AFH

1
Linux / OSX / Windows의 새로운 라인 형식간에 혼란이있는 것처럼 보입니다. 실행중인 다른 OS에서 스크립트를 작성한 적이 있습니까? Unity가 기대하는 기본 형식을 모르겠습니다.
AFH

답변:


2

텍스트 편집기에서 추가 할 가능성이있는 보이지 않는 문자, 너비가 아닌 비 결합 자 (U + 200C) 및 제로 너비 공간 (U + 200B)이 있습니다. 에 붙여 넣으면 볼 수 있습니다. vim:

String[]sepCmd=new String[]{"-i",overlayUri,"-i",uri,"-filter_complex","[1:v][0<200c><200b>:v]scale2ref[ua][b<200c><200b>];<200c><200b>[ua]setsar=1,format=<200c><200b>yuva444p,colorchanne<200c><200b>lmixer=aa=0.5[u];[b]<200c><200b>[u]overlay"<200c><200b>,outputPa<200c><200b>th}

이 감염으로 발생할 수있는 관련 오류 :

  • Invalid stream specifier:
  • No such filter: '‌​'
  • Error initializing filter
  • Unable to find a suitable output format

이러한 문자를 제거하고 메모장이나 MS Word가 아닌 더 나은 텍스트 편집기를 사용하십시오.


나는 이제 당신의 대답을 업 그레 이드 할 수 없을만큼 평판이 떨어집니다. 내가 gif 파일로 출력을 원한다면, 물어보고 싶은 마지막 한가지는 ouput 확장자를 .gif로 바꾸면 같은 명령이 작동할까요?
Vivek Mishra


다시 귀찮게해서 미안하지만 문제가 하나 더 있습니다. 주어진 명령을 사용하여 원하는 비디오를 만들었고 노트북에서 완벽하게 작동하지만 모바일 장치에서 동일한 비디오를 실행하면 오버레이 비디오는 정적이며 전혀 재생되지 않습니다. 비디오 게임의 사운드는 여전히 여기에 있습니다. 제대로 장치에.
Vivek Mishra

@VivekMishra ffmpeg에서 실제 명령과 로그를 볼 필요가 있습니다.
llogan

답장을 보내 주셔서 감사합니다.하지만 mp4 대신 gif를 사용하면 문제가 해결 된 것 같습니다.
Vivek Mishra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.