'gstreamer'에 해당되는 글 1건

  1. 2010.06.04 :: 리눅스에서 UPnP/Bluetooth 가지고 음악 재생하기 기본 지식
1. 블루투스

블루투스를 다루려면 bluez 를 이용하면 된다. Bluez를 이용하는 법에 대한 기본 정보는 An Introduction to Bluetooth Programming 참조. 샘플 프로그램은 여기에 있다.

리눅스 커맨드 라인에서 어떤 식으로 블루투스를 다룰 수 있는지에 대하여는 Manually Using Bluetooth 참조.

2. UPnP

UPnP를 다루기 위한 기본 라이브러리는 libupnp 이다. guPnP는 UPnP를 객체지향 스타일로 다룰 수 있게 해주는 프레임워크이다.

UPnP를 다룰 수 있는 기본 도구로서 우분투 리눅스에 설치할 수 있는 것으로는 upnp-tools 라는 패키지가 있으나 AV Control Point 는 무슨 이유에서인지 최근 버전에서 빠져있고 소스를 받아서 build를 해도 필요한 헤더 파일이 없어서 빌드가 되지 않음. (우분투의 버그 리포팅 사이트에 버그로 등재되어 있으니 해결 시한은 알려진 바 없음.)

UPnP를 지원하는 프레임워크로서 Coherence가 있다. 예를 들어, 음악 재생 프로그램인 Rhythmbox의 경우 Coherence Plug-in을 설치하고 enable 시켜주면 원격지의 UPnP 미디어 서버의 음악을 찾아 재생할 수 있다.

UPnP를 지원하는 여러 소프트웨어 패키지, 프로젝트에 대한 소개는 별도의 사이트에 있는데 이 사이트의 샘플 소스인 play-next-pause는 상당히 코드가 짧아서 이해하기 좋다. UPnP-inspector 라는 코드가 제일 좋은 소스인 듯.

추가된 이야기 : 안드로이드 환경에서는 CyberLinkForJava를 사용할 수 있다. 그 외 AndroMoteTwonkyServer mobile 가 있으나 소스가 공개되어있는지는 확인하지 못하였다.

3. Audio control

리눅스에서 오디오를 다루는 제일 좋은 라이브러리는 GStreamer 이며 Python binding이 있어서 간단히 다룰 수 있다. GStreamer는 souce / sink 라는 개념이 잘 정리되어 있다. 다음의 예는 mp3 파일을 재생하는 것을 필요한 source / sink 를 연결해서 하는 방법을 보여준다.

gst-launch-0.10 filesrc location=파일이름.mp3 ! mad ! audioconvert ! alsasink

리눅스에서 오디오 입/출력을 다루는 가장 잘 정리된 도구는 PulseAudio이며 특히 PulseAudio Volume Control 과 PulseAudio Device Chooser는 필수 도구.
신고
posted by 신묘군