FFmpeg를 사용하여 별도의 트랙에 워터마크 만들기

FFmpeg를 사용하여 별도의 트랙에 워터마크 만들기

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를 사용하여 비디오에 워터마킹하는 방법. 위치 세부정보로 들어갑니다.

관련 정보