티스토리 뷰
FHD (1920*1080) 영상을 FFmpeg을 이용하여 여러가지 사이즈의 동영상으로 인코딩을 해 보았다. 그리고 아주 적은 표본이긴 하지만 대략적인 테스트한 결과를 적어본다.
테스트 환경
CPU (2Core) : Intel Xeon Silver 4114 CPU @2.20GHz
MEM : 8GB
OS : CentOS 7.7
Monitoring : Zabbix, top 명령어
테스트 수행
FHD (1920*1080)로 15초, 30초, 60초 길이의 영상을 구했다.
그래서 이 영상들을 각각 SD (320*240) , VGA (640*480), HD (1280*720) 으로 변환을 해 보았다.
변환은 다음과 같이 수행을 하였다.
$ ffmpeg -i 15sec.mp4 -s 1280x720 -c:a copy 15sec_1280x720.mp4
위의 예를 보면 15초짜리 FHD 영상을 HD 영상으로 변환을 하는 명령어이다. 이런식으로 15초짜리를 HD, VGA, SD 로 변환, 30초짜리를 HD, VGA, SD 로 변환, 60초짜리를 HD, VGA, SD 로 변환하는 테스트이다.
해상도 | 15초 영상 | 30초 영상 | 60초 영상 | 메모리 점유율 | |||
시간(초) | CPU(%) | 시간(초) | CPU(%) | 시간(초) | CPU(%) | ||
HD (1280*720) | 140 | 12 | 121 | 16 | 373 | 12 | 평균 1.9% |
VGA (640*480) | 36 | 10 | 46 | 9 | 137 | 17 | |
SD (320*240) | 13 | 6 | 16 | 7 | 45 | 22 | |
5개파일 병렬처리 (동시에 인코딩) | |||||||
HD (1280*720) | 483 | 19 | N/A | ||||
VGA (640*480) | 177 | 18 | |||||
SD (320*240) | 58 | 29 |
테스트 수행 결과는 위와 같았다.
물론 해상도가 좋고 시간이 긴 영상은 인코딩하는데 시간이 많이 걸렸다. 그리고 생각보다 CPU, 메모리를 많이 사용하지는 않았다. 병렬처리 테스트도 한번 해봤는데 2Core라 그런지 병렬처리의 효과는 거의 느끼지 못하고 순차처리 하는것과 비슷한 시간이 걸린것 같다. 효과적으로 동영상 인코딩에 대한 병렬처리 작업을 하려면 병렬처리 효율이 높은 Core를 가진 환경에서 진행을 해야 할듯 싶다.
끝!
'Tool > EtcTools' 카테고리의 다른 글
Node.js Windows 10에 설치하기 (0) | 2021.05.26 |
---|---|
Slack workspace 생성 및 기본 사용법 (0) | 2020.12.21 |
Apache JMeter 설치부터 간단한 테스트까지 해보기 (0) | 2020.10.12 |
Slack에서 webhook 사용하기 (incoming-webhook) (0) | 2020.09.23 |
FFmpeg 사용해서 빠르게 인코딩 해보기 (0) | 2020.09.21 |