2013-03-18 2 views
0

ffmpeg를 사용하여 동영상에 처음 3 초 동안 워터 마크를 추가해야합니다. 여기에 내가 지금 가지고있는 작업은 다음과 같습니다동영상 시작 부분에 워터 마크 표시

ffmpeg -y -i '255871.mov' -qscale:v 0 -qscale:a 0 -vf '[in] transpose=1 [out];movie=watermark.png , select=lte(t\,3) [bg]; [out][bg] overlay=x=20:y=main_h-60 [out]' output.mp4 

이 오른쪽으로 비디오를 회전하고 처음 3 초 동안 영상의 하단에 워터 마크를 추가합니다. 문제는 워터 마크가 전체 비디오 중에 표시된다는 것입니다.

선택이 전혀 작동하지 않는다고 생각했습니다. 명령

ffmpeg -y -i '255871.mov' -qscale:v 0 -qscale:a 0 -vf '[in] transpose=1 [out];movie=watermark.png , select=0 [bg]; [out][bg] overlay=x=20:y=main_h-60 [out]' output.mp4 

워터 마크 다음 시도하는 것은 볼 수 없습니다. 올바른 및 select 필터 예상대로 작동하는지 증명합니다. 이것이 ffmpeg의 작동 방식입니다. 가장 짧은 비디오의 마지막 프레임을 볼 수 있습니다.

N 초 후에 ffmpeg가 워터 마크 표시를 취소하도록하려면 어떻게해야합니까?

+0

관련 토론 : [FFmpeg-user : 비디오 시작 부분에 워터 마크 표시] (http://ffmpeg.org/ pipermail/ffmpeg-user/2013-3// 014116.html). – LordNeckbeard

+0

yeap, 나에요 : – mente

+0

방금 ​​그 스레드에 대한 답장이 유용 할 수 있도록 다른 사람들을 위해 추가했습니다. – LordNeckbeard

답변

1

직접 답변해야합니다. ffmpeg mailing list을 통해이 문제를 해결할 수있었습니다. 기본 아이디어는 Apple Animation 코덱 (투명도 지원)을 사용하여 기존 워터 마크를 비디오로 변환하고 fade 필터를 사용하여 생성 된 비디오의 마지막 프레임을 페이드 아웃하는 것입니다.

예 :

ffmpeg -loop 1 -i watermark.png -t 3 -c qtrle -vf 'fade=out:73:1:alpha=1' watermark.mov 
ffmpeg -y -i '255871.mov' -qscale:v 0 -qscale:a 0 -vf '[in] transpose=1 [out];movie=watermark.mov [bg]; [out][bg] overlay=x=20:y=main_h-60 [out]' output.mp4 

페이드 아웃 FFmpeg은 비디오의 나머지의 오버레이 비디오의 최종 프레임을 사용하기 때문에 요구된다. 이 필터는 alpha=1 매개 변수를 통해 마지막 프레임을 완전히 투명하게 만듭니다. 실제로 그것은 fade=out:74:1:alpha=1이어야합니다. 그러나 그것은 저를 위해 작동하지 않았습니다. 왜 그런지 모르겠습니다.