2016-10-27 2 views
0

동영상의 하위 부분에 오버레이 (알파 채널이 포함 된 image.png)를 설정해야합니다. 전체 비디오에 설정하면 멋지게 작동합니다. 하지만 PNG가 없으면 10 초 간격을두고 비디오를 끝내야합니다.동영상의 하위 부분에 오버레이 이미지를 설정하는 방법은 무엇입니까?

따라서 오버레이는 시작 후 10 초에 나타나야하며 (길이 - 10 초) 자동으로 사라집니다. 하루를 보내고 자 노력했지만, trim 비디오 필터는 단순히 "단일 PNG 이미지 비디오 스트림"트리밍을 지원하지 않는 것 같습니다. 이 명령

ffmpeg -y -i "$INPUT" -i "$PNG" -c:v libx264 -preset ultrafast -filter_complex \ 
"[0:v]setpts=0.5*PTS,fps=25[vm]; [1:0]trim=10:190[vo]; [vm][vo]overlay=x=0:y=0:overlay=eof_action=pass[v]; [0:a]atempo=2.0[a]" \ 
-map "[v]" -map "[a]" qtest_AVUP.avi 

190에서

일부 기능/계산으로 대체되어야하지만, 진짜 문제는 오버레이 전혀 적용되지 않는다는 점이다. 그 결과 우리는 오버레이없이 일반적인 비디오를 얻었습니다. 이 문제를 해결할 수 있도록 도와 주시겠습니까?

  1. 어떻게 오버레이 비 적용 오류를 해결할 수 있습니까?
  2. 190 대신 (video_stream_length-10s)를 설정하는 방법은 무엇입니까?

답변

0

오버레이 코드에 대한이 시도 :

-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,20,40)'" 

이 20 40 초 사이에 오버레이를 넣어 것입니다. EOF-10을 받으려면 계산을해야합니다.

DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $INPUT) 
+0

당신은 [단독 ffprobe'이 기간 얻기 위해'] 사용할 수 있습니다 (http://superuser.com/questions/650291/how-to-get-video-duration- : 여기에 비디오 지속 시간을 얻을 수있는 몇 가지 코드는 in-seconds/945604 # 945604)'grep','cut' 및'tr'을 생략하십시오. – LordNeckbeard

+0

좋은 지적. 내 대답을 편집했습니다. – UltrasoundJelly

관련 문제