레터박스 대신 흐린 원본 영상을 배경으로 까는 프리셋

by JKyle posted Nov 05, 2018
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

레터박스 대신 흐린 원본 영상을 원본의 배경으로 깐 16:9 영상으로 만드는 프리셋입니다.

(가로폭이 16:9보다 큰 원본에 맞춘 프리셋 추가 - 2020.08.30)

(1:1 영상으로 만드는 프리셋 추가 - 2020.08.30)

 

프리셋 파일 다운로드흐린 원본을 16대 9 배경으로 깔기 - 가로폭이 작은 원본.xml

 

<사용한 필터들>

split하나의 비디오 스트림을 두 개의 동일한 스트림으로 복사

boxblur: 비디오 스트림을 흐리게(블러) 처리

overlay: 두 개의 비디오 스트림을 입력 받아 첫 번째 스트림 위에 두 번째 스트림을 겹쳐 놓음

scale: 해상도 변경

crop: 화면 잘라내기

 

각각의 필터에 대한 설명은 매개변수 도움말 > 필터 페이지를 참고하시기 바랍니다.

 

■ 비디오 필터 매개변수

=========================================================================================

 

 -vf "split[a][b];[a]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][b]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16"

 

    // split[a][b]

        // filter_complex가 아닌 vf 옵션을 쓰기 위해 비디오 스트림을 입력 받아 두 개의 비디오 스트림 [a][b]로 복사

    // [a]~[bg] 부분은 [a] 스트림을 input으로 받아 [bg]라는 임시 output을 만듦

        // scale=ih*16/9:-1 로 원본 비디오를 원본의 높이와 16:9의 비율로 맞는 넓이로 가로폭을 넓히고

        // 세로는 새롭게 넓어진 가로폭에 맞게 확장(-1)해 줌

            // 16:9보다 가로 비율이 큰 영상에 적용하기 위해서는

            // 아래와 같이 수정하여 세로폭을 원본의 넓이에 맞춰 16:9 비율로 확장하고 가로를 확장된 세로에 맞춰(-1) 확장

            // scale=-1:iw*9/16

        // boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1

            // 이 부분은 확장된 원본 비디오를 나중에 배경으로 쓰기 위해 흐리게 만드는 부분

            // 결과로 만들어지는 배경 비디오를 [bg]로 이름 붙임

            // [bg]는 원본 비디오에 비해 크기가 확장된 상태

    // [bg][b]overlay=(W-w)/2:(H-h)/2

        // 이 부분은 [bg][b]를 input으로 받아 [bg]를 배경으로 [b]를 그 위에 겹치는 명령어

        // (W-w)/2:(H-h)/2[bg]의 정가운데에 [b]를 올리는 옵션 (대문자는 첫 번째 입력, 소문자는 두 번째 입력의 매크로 변수)

    // crop=h=iw*9/16

        // 넓이에 비해 과도하게 높아진 높이를 16:9 비율에 맞게 잘라

        // 16:9보다 가로 비율이 큰 영상에 적용하기 위해서는

        // 아래와 같이 수정하여 높이에 비해 과도하게 넓어진 넓이를 16:9 비율에 맞게 잘라줄 것

        // crop=w=ih*16/9

 

=========================================================================================

 

■ 주의 사항 및 사용법

  • 원본 영상은 반드시 16:9보다 가로 비율이 작아야 합니다. 세로를 1로 기준할 때 16:9의 가로 비율은 1.78이므로 16:10, 4:3, 1:1 등 1.78보다 가로 비율이 작은 영상에는 적용 가능합니다.
     
  • 보통 16:9보다 가로 비율이 큰 영화 영상에는 적용할 수 없습니다. 1.85:1, 2.35:1 등. 이 경우엔 필터의 scale 부분과 crop 부분만 수정하면 됩니다. 단 그 경우엔 원본의 위와 아래에 16:9의 화면 비율에 맞춰 흐린 배경이 들어가게 됩니다. 설명을 참고로 직접 만들어 보시기 바랍니다흐린 원본을 16대 9 배경으로 깔기 - 가로폭이 큰 원본.xml 프리셋을 적용하시기 바랍니다. (상하에 블러 생성)
  • 16:9가 아닌 다른 비율로 output을 만들고 싶다면 16/9와 9/16만 바꿔주면 됩니다. 단, 원본이 새로 바뀌는 비율보다 가로 비율이 작아야 적용할 수 있다는 점은 동일합니다.
     
  • 배경의 흐림 정도를 조정하려면 boxblur 필터의 옵션들인 luma_radiusluma_powerchroma_radiuschroma_power 값을 살짝살짝 조정해 가면서 만족스러운 값을 찾으시기 바랍니다. (boxblur 필터의 옵션들에 대한 설명은 필터 매개변수 도움말 해당 부분을 참고)
     
  • 오른쪽 클릭 메뉴인 [구간 설정/잘라내기] ⇒ 잘라내기를 사용해 원본의 쓸데없는 검은 여백을 제거할 수 있습니다. (단, 잘라낸 해상도가 폭과 높이 모두 짝수가 되도록 할 것)
     
  • 빠른 설정(F6)영상 사이즈 변경 옵션을 통해 최종 출력되는 영상의 해상도를 변경할 수 있습니다.

 

<제작에 참고한 포스팅>

https://stackoverflow.com/questions/30789367/ffmpeg-how-to-convert-vertical-video-with-black-sides-to-video-169-with-blur

 

프리셋을 적용하여 인코딩한 영상의 샘플은 아래 유튜브 영상을 참고하십시오.

 

 

■ 주의 사항 및 사용법 (정사각형 배경)

 


 

[업데이트]

  • 빠른 설정 기능을 사용하기 위해 split 필터를 추가하여 필터의 입력과 출력 비디오 스트림 수가 하나가 되게 함 (2020.03.10)
  • 필터 입력 비디오 스트림을 원본 비디오 스트림에 제한하지 않기 위해 스트림 지정자 [0:v] 삭제 (2020.08.30)
  • 1:1 정사각형 영상으로 만드는 프리셋들 추가 (2020.08.30)
  • 16:9보다 가로폭이 큰 원본을 위한 16:9 프리셋 추가 (2020.08.30)
이 글을 추천한 사람
하얀마음 Rina papa