극단적으로 간단하게만 작성해본다. 유용하지 않은 예제일 수도 있다.
#include <stdio.h>
#include "./vpx_version.h"
#include "vpx/vpx_codec.h"
#include "vpx/vpx_image.h"
#include "vpx/vpx_integer.h"
#include "vpx/vpx_encoder.h"
#include "vpx/vpx_decoder.h"
#include "vpx_ports/msvc.h"
#include "vp9/vp9_iface_common.h"
#include "vp9/vp9_cx_iface.h"
int main()
{
vpx_codec_iface_t* vpx;
vpx_image_t* vpximg;
vpx_codec_ctx_t codec;
vpx_codec_enc_cfg cfg;
int i = 0;
int flag;
vpx = vpx_codec_vp9_cx(); /*vp9 컨텍스트 생성*/
vpx_codec_enc_config_default(vpx, &cfg, 0); /*기본 설정정보 불러오기*/
/*디테일한 설정 조정*/
cfg.g_timebase.den = 60;
cfg.g_w = 1920;
cfg.g_h = 1080;
cfg.rc_target_bitrate = 1600;
vpx_codec_enc_init(&codec, vpx, &cfg, 0); /*설정 정보를 기반으로 코덱 초기화*/
vpximg = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, 1920, 1080, 4); /*이미지 프레임 할당*/
/*아무것도 들어있지 않은 이미지를 계속 연이어 인코딩 해보자.*/
while(1){
if (i % 60 == 0) flag = 1; else flag = 0; /*60 프레임마다 I 프레임 생성*/
vpx_codec_encode(&codec, vpximg, i++, 1, flag, VPX_DL_REALTIME); /*실시간 품질로 인코딩*/
printf("processed %d frame ...\r",i);
}
return 0;
}
|
cs |
엄청 느리다. 초당 4-5 프레임 정도 나오는 것 같다.
하드웨어 가속을 받을 수 있는 방법을 알아봐야겠다.
OpenCV를 활용하여 해보고 싶다면, 이 친구의 뻘짓을 참고하자. >> hwan001.tistory.com/82
libvpx 를 이용하여 이 내용을 적절히 볶아내면 될 것 같은데...
'뻘짓' 카테고리의 다른 글
로우소켓을 통한 스타크래프트 유저 IP추적기 만들기 (0) | 2020.09.23 |
---|---|
Winmm을 통한 사운드 입출력장치 얻어오기 (0) | 2020.09.13 |
libvpx 빌드하기 (파일 첨부 되어있음) (0) | 2020.09.05 |
OpenSSL을 통한 소수 생성 (랜덤) (1) | 2020.09.02 |
무선랜 인터페이스 얻어오기 (0) | 2020.08.31 |