VLC는 오픈 소스이며 sdk 를 lib 형태로 제공해 주기 때문에 쉽게 사용할 수 있다.


이를 이용하여 간단한 Player를 만들어 보았다.


사용 툴 : QT 4.2.2, vlc-2.2.5.1


순서


1. QT는 설치가 되어있다는 전제하에 vlc 를 다운로드 받는다


 - installer(exe)로 받는 것이 아니라 7-zip 으로 받아야 sdk가 포함된 버전을 다운받을 수 있다.

 - 코딩에 필요한 include 와 lib는 첨부에 올렸으니 다운을 받고 직접 다운받기를 원하는 사람은 밑의 사이트에서 다운받길..

  (추가로 dll과 plugins이 들어있는데 libvlc sdk 에서 제공하는 버전은 x86(32bit)이기때문에 x64(64bit) 버전에서는 실행이 안되는 문제가 발생한다. 64bit 에서 작업하기를 원하는 사람은 첨부파일을 다운받고 dll과 plugins for x64를 사용하면 된다.)

 - 다운로드 사이트

http://www.videolan.org/vlc/download-windows.html

 - 용량이 큰 관계로 분할압축.. (VLC.*)


2. 압축을 해제하고 QT 프로젝트를 생성한다.



 (include 폴더 안에 vlc폴더 안에 실제 헤더들이 존재하는데, 경로의 편의를 위해 필자는 vlc 폴더 안의 내용을 include로 옮겼다. 이후 경로가 다를 수 있다.)

 - 간단한 테스트를 위해 Widget으로 생성하였다.


3, libvlc lib와 include 추가한다.



 - .pro 파일에 아래와 같이 경로를 추가한다.(경로는 다운받은 위치에 맞게 수정하여 추가한다. 필자는 include 밑에서 경로를 수정하였다. 수정하지 않았으면 include 밑에 vlc 까지 써줘야 한다.

 - library 추가 시 -lvlc 를 사용하여야한다.


4. 코드를 작성한다.


 - 코드는 아래 사이트의 코드를 사용하였다, 코드를 자기에게 맞게 수정한다.

http://lvzuufx.blogspot.kr/2017/01/qt-libvlc-lvplayer.html

 - 첨부파일로도 올렸다. (VLCPlayer.zip)


5. Test



 - 영상은 Windows10에서 기본으로 제공하는 영상을 사용하였다.

 - 조금 더 깔끔한 UI 를 위해 기본으로 Widget에서 제공하는 UI는 삭제하였다.


< - Error - >


1. libvlc 파일을 다운 받은 곳을 환경변수 지정하던지 혹은 lib 디렉토리 안에 dll을 복사해서 넣어야한다. dll이 없을 시 "The program has unexpectedly finished." 에러를 볼 수 있음.. (다른 에러는 금방 해결했는데 이 에러는 최악...)


2. 위와 동일하게 plugins가 없다는 에러가 나오는데 위와 동일하게 경로를 추가하거나(위에서 경로를 추가했으면 문제될 일이 없다) lib 디렉토리 안에 넣으면 해결


참고자료 : http://lvzuufx.blogspot.kr/2017/01/qt-libvlc-lvplayer.html


소스코드 및 libvlc for x64 파일 첨부


-소스코드-

HelloWebcam.zip


-libvlc for x64

VLC.z01

VLC.z02

VLC.z03

VLC.z04

VLC.z05

VLC.z06

VLC.z07

VLC.z08

VLC.z09

VLC.z10

VLC.zip


모두 다운로드 후 VLC.zip 실행

'프로젝트 > QT' 카테고리의 다른 글

QT - libvlc 연동, Error  (0) 2017.05.22
QT - openCV3.0 이상 버전 연동, Error 정리  (0) 2017.05.22
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적

Tag libvlc, Qt, WebCam

댓글을 달아 주세요


사용 툴 : QT 4.2.2, openCV3.0, CMake 3.8.1


순서


1. CMake Tool 을 사용해 Source path 와 Output path 모두 설정 후 Configure

 - Source path : openCV 경로/sources/

 - Output path : CMake 결과가 나올 장소



 

2. Configure 시 MinGW , Specify Native compilers 를 선택



 

3. gcc 와 g++ 경로를 QT 에서 선택

 - gcc 경로 : QT경로/mingw530_32/bin/gcc.exe

 - g++ 경로 : QT경로/mingw530_32/bin/g++.exe



4. Configure 클릭

 - 환경변수에 MinGW(QT경로/Tools/mingw530_32/bin) 경로 있어야 함

 - 나온 결과에서 사용할 항목이나 제거할 항목 선택 (ex) BUILD_opencv_world, CUDA 등)


5. Generate 클릭


6. Qt #.# for Desktop (MinGW #.#.# 32bit) 실행 후 Cmake Tool 에 적은 Output path 로 이동


 


7. mingw32-make


 

8. mingw32-make install



9. QT 프로젝트 생성



10. openCV lib와 include 추가

 - 프로젝트명.pro 밑에 추가 (각자 맞는 opencv경로로 추가(방금 컴파일한 경로))



(world를 build 하지 않아서 다시 빌드했다고 한다.. opencv3.0 설치하고 결국 opencv2버전으로 코딩)


11. Test(Webcam 실행)


 



모든 설치가 가장 어렵다



< - Error - >


1. Configure 후 나오는 옵션에서 WITH_IPP 체크 해제 (openCV 2.X 버전은 상관 없음 openCV 3.X 버전만 해제, IPP : only Intel)

 - 해제 하지 않으면 mingw32-make 에서 문제 발생

 - Error : recpie for target 'bin/libopencv_core300.dll' failed 외 1 Error



2. Cmake Tool에서 설정한 Source path 에서 OpenCVCompilerOptions.cmake 파일 검색 후

add_extra_compiler_option(-Werror=non-virtual-dtor) 코멘트 찾아서 주석 처리

 => #add_extra_compiler_option(-Werror=non-virtual-dtor)

 - 주석 처리 하지 않으면 mingw32-make 에서 문제 발생

 - Error : recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dsho.cpp.obj' failed 외 다수 Error


 


3. Tensorflow 사용 목적으로 Anaconda3 에서 파이썬 3.6.0 을 사용중인데 이 경우 include path 설정을 자동으로 하지 않음

 - Generate 전에 Anaconda3의 Python 경로에 맞게 옵션 재설정 후 설치

 - Error : recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.obj' failed 외 2 Error



참고자료 : http://iam777.tistory.com/419

Error 참고자료 : Error 1 : https://github.com/opencv/opencv/issues/4778

                  Error 2 : http://stackoverflow.com/questions/27828740/opencv-3-0-videoio-error


소스코드 첨부

HelloWebcam.zip


'프로젝트 > QT' 카테고리의 다른 글

QT - libvlc 연동, Error  (0) 2017.05.22
QT - openCV3.0 이상 버전 연동, Error 정리  (0) 2017.05.22
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적

Tag OpenCV, Qt, WebCam

댓글을 달아 주세요