PNG(알파) 파일과 비디오 파일이 있습니다. 첫 번째 트랙이 이미지이고 두 번째 트랙이 비디오(비디오 위에 PNG)인 비디오를 만들고 싶습니다. 문제는 PNG가 투명도를 유지하지 않는다는 것입니다.
비디오 트랙 위에 ffmpeg를 사용하여 별도의 트랙에 워터마크(PNG)를 만들어야 합니다.
ffmpeg -i base.mov -i logo.png -map 0 -map 1 output.mov
답변1
워터마크를 추가하는 구문은 약간 다릅니다. 이를 위해서는 이미 FFmpeg와 함께 번들로 제공되는 비디오 필터가 필요합니다.
별도의 트랙에 투명한 워터마크를 추가할 수 있는지 잘 모르겠습니다. 그 이유는 이미지 자체(PNG "스트림")를 실제 비디오 트랙(예: x264 사용)으로 변환해야 하기 때문입니다. 그리고 비디오 인코더는 이 단계에서 투명도를 지원하지 않으므로 투명한 이미지를 얻을 수 없습니다. .
오른쪽 상단에 다음 내용이 추가됩니다 logo.png
. base.mov
다음 매개변수를 사용하여 위치를 결정할 수 있습니다. 제 예에서는 테두리에서 10픽셀 떨어진 곳에 배치했습니다.
main_w
(기본 비디오 너비)main_h
(기본 동영상 높이)overlay_w
(오버레이 비디오 너비)overlay_h
(오버레이 비디오 높이)
그러면 필터 명령은 다음과 같습니다.
movie='logo.png' [logo]; [in][logo] overlay=main_w-overlay_w-10:10 [out]
이것을 완전한 FFmpeg 명령으로 바꾸면 다음과 같습니다.
ffmpeg -i base.mov -vf "movie='logo.png' [logo]; [in][logo] overlay=main_w-overlay_w-10:10 [out]" -c:v libx264 -crf 20 out.mov
매개 -c:v libx264 -crf 20
변수는 출력 비디오 코덱과 해당 품질을 결정합니다(여기서 CRF는 원하는 품질에 따라 19에서 24 사이일 수 있으며 낮을수록 좋습니다).
여기에 해당 주제에 대한 좋은 블로그 게시물이 있습니다.FFmpeg를 사용하여 비디오에 워터마킹하는 방법. 위치 세부정보로 들어갑니다.