라즈베리파이3 OMXPlayer 제어
라즈베리파이 운영체제 라즈비안에는 기본적으로 설치되어있는 영상 플레이어인 OMXPlayer가 있다. 라즈베리파이로 원격이나 자동 영상 재생을 할 때 파이썬으로 OMXPlayer를 제어할 수 있다면 편하다.
Subprocess
간단하게 파이썬 프로그램 내에서 새 프로세스를 실행시켜 OMXPlayer를 제어해도 된다. 하지만 OMXPlayer의 상태 확인이나 프로세스 실행 후 제어가 불편하더라.
$ subprocess.call(["omxplayer", "파일명"])
omxplayer-wrapper
omxplayer만을 위한 라이브러리가 있다.
dbus를 사용하여 구현한 라이브러리라고 한다. D-Bus - 출처: wiki.archlinux
메시지 버스 시스템으로 프로세스 간의 통신을 쉽게하는 수단을 제공한다. 시스템 전반과 각 사용자 세션 모두에 대해 실행될 수 있는 데몬과 응용프로그램이 D-Bus를 사용할 수 있게 하는 일련의 라이브러리로 이루어져 있다.
D-Bus중 libdbus는 응용 프로그램간의 통신을 가능하게 하는 라이브러리이고 omxplayer-wrapper를 사용하기 위해 꼭 설치해야한다. 하지만 docs에서 설명된 방법으로 설치해보면 설치가 안된다. - issue Report
$ apt-get install libdbus-glib-1-dev
$ pip3 install dbus-python
이 2가지중 한가지로 설치해야하고 그 이후는 같다
$ pip install omxplayer-wrapper
사용법은 링크에 자세히 나와있다.