티스토리 뷰

반응형

영상을 스크롤하면서 볼 수 있는 뷰어를 만드는데, 영상을 스크롤 할 때마다 렉이 걸린다. 재생은 잘 되는데. 왜 그러는걸까?

 

영상을 인코딩 할 때는 GOP라는 압축 기법이 들어간다. 이 기법은 영상이 정상 프레임 + 예측 프레임들로 채워진다

 

 

이 압축 기법을 사용하면 사진의 아래처럼 예측을 하여 영상이 만들어진다. 일반적인 영상 재생에서는 이 예측이 재생 시간안에 이루어진다. 하지만 스크롤링 같은 경우는 매우 빠르게 흘러가기때문에 이러한 예측 압축을 다시 풀 시간이 없다.

 

이를 해결하기 위해서는 예측 프레임을 없애줌으로써, 정상 프레임인 I 프레임으로만 이루어진 영상을 만들어 사진의 위처럼 압축 없이 인코딩한다.

 

하지만 압축이 없어지기 때문에 약간의 크기 증가는 감안해야한다.

 

ffmpeg -i 영상.mp4 -c:v libx264 -crf 28 -intra 결과.mp4

설명:

  • -i 영상.mp4: 입력으로 영상.mp4를 사용한다
  • -c:v libx264: libx264라는 인코더를 사용한다
  • -crf 28: 화질 수치. Constant Rate Factor의 줄임말로 영상의 화질을 결정한다. 낮을수록 좋다. 화질을 체크하면서 인코딩을 시도해보자
  • -intra: I Frame만 사용한다.
  • 결과.mp4: 출력 파일명

 

위와 같이 인코딩하면 파일 크기는 조금 늘지만 빨리 스크롤해도 렉 걸리지 않는 영상을 만들 수 있다 :)

 

추가적으로 -crf 옵션 없이 -b:v 옵션으로 직접 비트레이트를 지정할 수 있다. 비트레이트나 영상 관련해서 잘 안다면 이 파라미터를 사용해도 좋다

 

 

지식 출처: https://tell-mia.tistory.com/46

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함