2012-06-07 2 views
10

비디오가 항상 원래 비디오에 비례하여 높이가 변하는 512 와이드가되도록 비디오의 크기를 조정하려고합니다. 크기를 조정하면 비디오에 워터 마크/오버레이를 적용하려고하므로 비디오의 크기가 조정되지만 워터 마크가 표시되지 않습니다.FFmpeg - 비디오를 스케일 한 다음 워터 마크를 적용하는 방법?

나는 별도로 다음과 같은 필터를 사용하여 이들 각각을 달성 할 수 있어요 :

규모

-vf "scale=512:-1" 

워터 마크

-vf "movie=watermark.png [watermark]; [in][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]" 

그들은 그들 자신에 성공적으로 작동합니다.

그러나 두 가지를 결합하려고 할 때, 약간의 문제가 있습니다.

매개 변수로 두 가지 매개 변수를 모두 사용하는 것은 효과가 없습니다.

-vf "scale=512:-1,movie=watermark.png [watermark]; [in][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]" 

내 생각은 규모의 워터 마크가 먼저 적용 할 것이라고했지만, 난이 얻을 모든

너무 많은 입력이 "영화"필터에 지정된 오류입니다 :

필자는 시도 .

필터를 여는 중 오류가 발생했습니다.

그런 다음,를; 그 결과 :

단순 필터 그래프 'scale = 512 : -1; movie = watermark.png [워터 마크]; [입력] [워터 마크] overlay = (main_w-overlay_w)/2 : (main_h-overlay_h)/2 [out] '에는 정확히 하나의 입출력이 에 없습니다.

필터를 여는 중 오류가 발생했습니다.

나는 필터 체인으로 더 많은 것을 할 필요가 있지만, 그것을 고민하기 위해 고심하고있다.

아무도 아이디어가 없습니까?

미리 감사드립니다.

+2

프로그래밍 관련 없음 - http://superuser.com을 시도해보십시오. –

+0

워터 마크 이미지를 처음으로 스케일링 한 다음 스케일 비디오에 적용한 것이 더 좋습니다. 두 프로세스간에 파이프를 만들 수 있습니다. –

답변

14

@DiJuMx와 @LordNeckbeard 모두에게 감사드립니다. 내 솔루션에 더 가까워졌습니다. 필자는 아직 filter_complex 옵션을 시도하지 않았지만 확실히 단순 해 보입니다.

I 작동하는 것으로 상기 용액은 :

-vf "movie=watermark.png [watermark]; [in]scale=512:trunc(ow/a/2)*2 [scale]; [scale][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]" 

주 필자 대체한다는 -1 규모 즉 스케일링 할 때 영상의 높이의 픽셀 홀수를 일으킬 가능성이 있었다으로하는 그런 다음 인코딩 오류가 발생합니다.

16

당신은 규모와 오버레이 필터로 -filter_complex 옵션을 사용할 수 있습니다 :

ffmpeg -i input.mp4 -i logo.png -filter_complex "[0:v]scale=512:-1[bg];[bg][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" output 
  • 더 많은 정보를 원하시면 scaleoverlay 필터 설명서를 참조하십시오.
  • 다른 예제와 마찬가지로 소스 필터가 필요하지 않습니다.
  • 원본 오디오를 다시 인코딩하지 않고 stream copy (다시 혼합)하려는 경우 -c:a copy을 추가 할 수 있습니다.입력 및 출력 컨테이너 형식이 동일한 경우 유용합니다.
  • 예제는 가운데에 로고를 배치합니다. 다른 배치 옵션의 경우 : overlay=W-w-10:10
  • 오른쪽 아래 10 픽셀 패딩 : overlay=W-w-10:H-h-10
  • 낮은 10 픽셀 패딩 왼쪽 overlay=10:10
  • 오른쪽 상단 픽셀 패딩 10 :
    • 위는 10 픽셀 패딩 왼쪽 : overlay=H-h-10:10 내가 이해에서
0

이 작동 될 수 있습니다

-vf "movie=watermark.png [watermark]; [in] scale=512:-1,[watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]" 

"[입력]"입력에 눈금 필터를 적용합니다.

불행히도 나는 ffmpeg의 필터에 대한 많은 경험이 없기 때문에 더 이상 도움을 줄 수 없습니다. 죄송합니다.

관련 문제