[완료]다양한 포맷(YV12, I420, YUY2,...)의 동영상 샘플을 구하는 법

xylosper의 이미지

동영상 재생기를 만들면서 깊이 들어가게 되니 직접 raw-frame을 다루게 되었습니다.
지금 하고 있는게 잘 되는지 확인해보고 싶은데, 저한테 있는 것은 I420의 동영상 뿐이네요.
이외의 포맷에서도 테스트를 해보고 싶은데, 이런 샘플 동영상을 모아둔 곳은 없을까요?

jwstyle의 이미지

우선 코덱 담당자에게 문의하시면 되구요 ^^;

그게 힘들다면 xvid같은 녀석으로 간단하게 디코딩 플레이어 하나 만들어서 output 옵션을 여러 yuv(RGB도 있네요)형식으로 하도록 해서 저장 하면 쉽게 만들 수 있겟네요...

검색해보니 다음과 같은 형식을 지원합니다.

#define XVID_CSP_PLANAR (1<< 0) /* 4:2:0 planar (==I420, except for pointers/strides) */
#define XVID_CSP_USER XVID_CSP_PLANAR
#define XVID_CSP_I420 (1<< 1) /* 4:2:0 planar */
#define XVID_CSP_YV12 (1<< 2) /* 4:2:0 planar */
#define XVID_CSP_YUY2 (1<< 3) /* 4:2:2 packed */
#define XVID_CSP_UYVY (1<< 4) /* 4:2:2 packed */
#define XVID_CSP_YVYU (1<< 5) /* 4:2:2 packed */
#define XVID_CSP_RGB (1<<16) /* 24-bit rgb packed */
#define XVID_CSP_BGRA (1<< 6) /* 32-bit bgra packed */
#define XVID_CSP_ABGR (1<< 7) /* 32-bit abgr packed */
#define XVID_CSP_RGBA (1<< 8) /* 32-bit rgba packed */
#define XVID_CSP_ARGB (1<<15) /* 32-bit argb packed */
#define XVID_CSP_BGR (1<< 9) /* 24-bit bgr packed */
#define XVID_CSP_RGB555 (1<<10) /* 16-bit rgb555 packed */
#define XVID_CSP_RGB565 (1<<11) /* 16-bit rgb565 packed */
#define XVID_CSP_SLICE (1<<12) /* decoder only: 4:2:0 planar, per slice rendering */
#define XVID_CSP_INTERNAL (1<<13) /* decoder only: 4:2:0 planar, returns ptrs to internal buffers */
#define XVID_CSP_NULL (1<<14) /* decoder only: dont output anything */
#define XVID_CSP_VFLIP (1<<31) /* vertical flip mask */

재생기 설계하셨으면 뭐 간단한 디코더만드는건 쉬우실꺼에요...

아니면 ffmpeg같은걸로 출력 형식을 지정해서 만드시는것도 좋구요..

재생기는 개발보다는 유지보수가 힘들죠 T_T (파일 형식이 늘어나고 비표준적인 파일 대응...하드웨어 디코더 지원 등...)

----------------------------
Let's Do It

xylosper의 이미지

답변감사합니다. 직접 변환해서 해보면 된다는걸 생각못했네요.
포맷변환해주는 거야 널렸으니 아무거나 골라서 테스트해봐야겠습니다.
감사합니다.

madman93의 이미지

예전에는 구글에서 검색만 해도 무수히 많은 샘플 동영상들이 존재 했었는데
다음에 한번 찾아 봐야 겠군요 ^.^
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------

---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------