ffmpeg을 이용해 Qt(C++)로 동영상 플레이어를 만들때..
글쓴이: pogusm / 작성시간: 화, 2011/07/12 - 5:02오후
기본 개념이 없어서 질문 드립니다..
ffmpeg 라이브러리를 설치하고,
http://code.google.com/p/qtffmpegwrapper/ 에서 샘플 소스코드를 다운로드 받아서
컴파일해서 실행해 보았습니다. (첨부 이미지 참고)
기본적으로 동영상 파일을 디코딩 해서 1프레임씩 보여주는 프로그램입니다.
QPixmap p; image2Pixmap(frame,p); ui->labelVideoFrame->setPixmap(p);
프레임 이미지는 위의 방법으로 QLabel에 출력됩니다.
그렇다면,
실제로 동영상 플레이어를 Qt로 만든다고 하면..
그냥 QLabel에 연속적으로 이미지를 출력해 주면 되는건가요?
아니면, 위 예제는 그냥 기본 원리를 구현하는것뿐이고..
실제로 동영상을 구현하려면 다른 방법을 이용해야하는건가요? (만약 그렇다면 어떤 방법으로 동영상을 출력을 해야 하나요?)
조언 부탁드립니다
굽신굽신
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 90.14 KB |
Forums:
원리로 따지자면 연속적으로 이미지를 출력해주는 건
원리로 따지자면 연속적으로 이미지를 출력해주는 건 맞는데,
알고리즘에 따라서, 변화된 부분만 업데이트 하는 경우도 있고,
실질적으로 보자면, 그냥 위젯상에 이미지 다 뿌리는건 상당히 느린 작업이라, 트릭이나 저수준 API를 많이 씁니다.
오픈소스로 공개된 동영상 플레이어를 살펴보는게 공부하는데는 가장 좋을 것 같습니다.
------------------------------
How many legs does a dog have?
답변 감사합니다..
"변화된 부분만 업데이트 하는 방법"을 직접 개발하기는 어려울거 같은데..
혹시 openGL을 이용해 출력하면 openGL에서 알아서 처리해 주거나 그런건 없을까요?
그리고
트릭이나 저수준 API를 쓴다는건 구체적으로 무슨 뜻인가요?
저수준 API라는건.. QT에서 제공하는 라이브러리함수가 아닌 windows.h 에 있는 API를 이용해서 출력하는 건가요??
트릭이라는건 감도 안잡히네요 ㅠㅠ
ps. 검색을 해보니... io.h 가 '저수준파일' 라고 하는데.... 모르겠네요 ㅠㅠ
( http://edps5091.tistory.com/entry/bitmap%EC%A0%80%EC%88%98%EC%A4%80-%EC%B6%9C%EB%A0%A5API )
동영상을 직접 처리하려면, 최소한 동영상과 관련된
동영상을 직접 처리하려면, 최소한 동영상과 관련된 알고리즘을 제대로 알고있어야 하지 않을까 싶습니다.
OpenGL은 그저 3디 그래픽스를 처리하기 위한 도구일 뿐이지 어떤 알고리즘도 알아서 처리해주지 않습니다.
어떤 트릭을 쓰는지는 동영상 알고리즘이나 동영상 프로그램 소스를 뒤져보면 찾으실 수 있을 겁니다.
제가 저수준 API라고 하는 것은 어디서 제공하는 것이든, 하드웨어를 거의 직접 처리하는 API를 말합니다.
감도 안잡힌다면, 동영상 알고리즘이나 그래픽스 라이브러리 등, 먼저 필요한 지식부터 제대로 습득하셨으면 합니다.
------------------------------
How many legs does a dog have?
답변 감사합니다.
동영상 플레이어라는게 정말 복잡한거군요.. ㅠㅠ
어쨌든, 답변 감사합니다.
댓글 달기