ffmpeg를 사용하여 동영상의 처음 30초 동안 로고를 추가하려고 합니다. 이라는 비디오 d1.mp4
와 이라는 로고 가 있습니다 logo.png
.
동영상이 시작되면 워터마크가 동영상의 왼쪽 상단이나 오른쪽 상단에 나타나며 30초 후에 사라져야 합니다.
추가하는 방법을 알려주실 수 있나요?
답변1
ffmpeg -i in.mp4 -framerate 30000/1001 -loop 1 -i logo.png -filter_complex
"[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]"
-map 0:a -c:v libx264 -c:a copy -shortest out.mp4
여기서는 로고가 알파 채널이 있는 단일 스틸 이미지이고 프레임 속도가 30000/1001(NTSC 속도)인 비디오 위에 로고를 오버레이한다고 가정합니다. -framerate
입력 비디오가 다른 경우 일치하도록 변경하십시오 . 로고가 동영상인 경우 생략하세요 -framerate 30000/1001 -loop 1
. 로고에 알파 채널이 없으면 format=yuva420p,
바로 앞에 삽입하여 추가하세요 fade
.
그러면 x, y 위치 10,10에 30초 동안 로고가 표시되고 1초 동안 페이드 아웃됩니다.
답변2
사용overlay
비디오 필터비디오에 로고를 추가하려면:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4
이 명령을 이해하려면 다음이 무엇인지 알아야 합니다.스트림 지정자이고 읽고 있는 중FFmpeg 필터링 소개도움이 될 것입니다. [0:v]
은 첫 번째 입력( )의 비디오 스트림을 참조하고 video.mp4
, [1:v]
두 번째 입력( )의 비디오 스트림을 참조합니다 logo.mp4
. 이것이 overlay
어떤 입력을 사용할지 알 수 있는 방법입니다. 을 생략할 수 [0:v][1:v]
있으며 overlay
여전히 작동하지만 명시적으로 설명하고 알 수 없는 기본값에 의존하지 않는 것이 좋습니다.
기본적으로 로고는 왼쪽 상단에 배치됩니다.
-codec:a copy
의지를 사용하여스트림 복사오디오. 이는 단순히 오디오를 다시 인코딩하는 대신 오디오를 다시 다중화하는 것입니다. 오디오의 "복사하여 붙여넣기"라고 생각하세요.
로고 이동
이 예에서는 로고를 오른쪽으로 10픽셀, 아래로 10픽셀 이동합니다.
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4
이 예에서는 로고를 오른쪽에서 10픽셀, 아래로 10픽셀 이동합니다.
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4
main_w
은 "기본" 입력(배경 또는 [0:v]
) 의 너비를 나타내고 "오버레이" 입력(로고 또는 ) overlay_w
의 너비를 나타냅니다 . [1:v]
따라서 이 예에서 이는 overlay=320-90-10:10
또는 로 번역될 수 있습니다 overlay=220:10
.
오버레이 타이밍
일부 필터는 처리할 수 있습니다.타임라인 편집이를 사용하면산술 표현식필터를 적용해야 하는 시기를 결정합니다. 타임라인 편집을 지원하는 필터를 확인하려면 을 참조하세요 ffmpeg -filters
.
이 예에서는 30초까지 로고를 표시합니다.
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4
로고를 희미하게 만들고 싶다면 다음을 참조하세요.mark4o의 답변.