ffmpeg 천줄로 비디오플레이어 만들기

http://www.dranger.com/ffmpeg/ffmpeg.html

http://hybridego.net/entry/천줄로-비디오플레이어-만들기
http://hybridego.net/entry/千-Line-으로-비디오플레이어-만들기-1
http://hybridego.net/entry/千-Line-으로-비디오플레이어-만들기-2
http://hybridego.net/entry/千-Line-으로-비디오플레이어-만들기-3
http://hybridego.net/entry/千-Line-으로-비디오플레이어-만들기-4
http://hybridego.net/entry/千-Line-으로-비디오플레이어-만들기-5
http://hybridego.net/entry/千-Line으로-비디오플레이어-만들기-6
http://hybridego.net/entry/千-Line으로-비디오플레이어-만들기-7
http://hybridego.net/entry/千-Line으로-비디오플레이어-만들기-8
http://hybridego.net/entry/千-Line으로-비디오플레이어-만들기-마무리
별로 중요하지 않은 부분중 생략된 부분이 있고 의역이 많이 있습니다.
군데군데 틀린 번역이 있을수 있습니다. (영어가 후달려서)

하지만 소스코드 설명 부분은 틀리지 않도록 노력했습니다.

위의 원문을 번역한 것입니다.
잘못된 부분이 있을지도 모르겠습니다.
혹시 잘못된 부분을 발견하시면 댓글로 알려주시면 감사하겠습니다.



Tutorial 08: Software Scaling


libswscale

ffmpeg는 최근 새 인터페이스를 추가했습니다. libswscale 이라는 이미지 스케일을 제어하는 것을요. 사실 전에 우리가 img_convert 를 이용해서 RGB를 YUV로 바꾸었던것입니다. 이제 우리는 새 인터페이스로 그것을 대신 하겠습니다. 이 새로운 인터페이스는 더 모듈화되고, 더 빠르고, MMX 최적화를 해서 더 믿을만 합니다. 한마디로 스케일링하는데 적합하다는 것이죠.

우리는 그동안 기본함수인
sws_scale 을 사용할것입니다. 하지만 우선 우리는 SwsContext라고 부르는 것을 설정해야 합니다. 이것은 우리가 원하는대로 바꾼것을 컴파일 하게 해주고 그것을 다음에 sws_scale에 넘겨줍니다. 이것은 SQL이나 파이선의 compiled regexp에서 몇몇의 준비된 문장입니다. 이 context를 준비하려면 sws_getContext 함수를 사용합니다. 이 함수는 소스의 가로 세로 값과 우리가 원하는 가로 세로 값 그리고 소스의 포맷과 원하는 포냇을 입력해야 합니다. 그리고 몇가지 다른 옵션들과 플래그도 넣어줘야 합니다. 그러면 SwsContext에 그것을 건네주지 않고 sws_scale을 img_convert 와 비슷한 방법으로 사용합니다.

AVFrame, img_convert, SDL_LockYUVOverlay(), img_convert, sws_getContext(), sws_scale()
이제 우리가 새롭게 scaling 한 것이 나옵니다.
여러분은 이것을 이용해서 libswscale이 할수 있는 여러가지 아이디어를 얻으실 수 있을것입니다.

컴파일 해볼까요?
gcc -o tutorial08 tutorial08.c -lavutil -lavformat -lavcodec -lz -lm `sdl-config --cflags --libs`

드디어 여러분은 1,000 줄 만에 근사한 무비 플레이어를 만들게 되셨습니다.

축하합니다. ㅋ
Posted by Real_G