LIRCによるVLC Media Playerの操作(IRリモコン操作)

#1

LIRCではプログラムごとにリモコンキーを割り当てることができます。従来はmplayerにのみ対応させていましたが、追加でVLCにも対応させました。

LIRC参考サイト

対象ハードとOS
OrangePi PC: ARMBIAN 5.38 stable Ubuntu 16.04.4 LTS 3.4.113-sun8i

VLCには様々なコマンドが用意されているためインストールするVLCはvlc-noxとします。(デスクトップインターフェイスは不要の為)
VLCコマンド一覧:https://wiki.videolan.org/VLC_command-line_help/

vlc-noxのインストール

$ sudo apt install vlc-nox

プログラム毎にLIRC用設定ファイルを用意します。上記LIRC参考サイトに従いユーザディレクトリか、/etc/lircディレクトリに作成します。

/etc/lircに作成する場合
lircrcファイル内に新たに作成するインクルードファイルを指定します。(このファイル内でmplayer用にリモコンキーを割当てた内容は全て/etc/lirc/mplayerに移行します)

$ sudo pico /etc/lirc/lircrc

include "/etc/lirc/mplayer"
include "/etc/lirc/vlc"

lirc/mplayerはLIRCでmplayerをコントロールするリモコンキーを割当てたファイルです。

lirc/vlcで使用するリモコンキーの割当てについては以下を参照して下さい。
https://wiki.videolan.org/VLC_HowTo/Use_with_lirc/

VLCキーコード割当て例)

VLCによる再生とLIRCによる動作確認

$ cvlc --control=lirc xxx.mp3

音楽が再生されたら、/etc/lirc/vlcで割当てたリモコンキーを押下し動作を確認して下さい。

0 Likes

#2

VLCは管理者ユーザでは動作しません。このためシステムデーモンとして動作しているlircではirexecによる起動はできません。vlcのみユーザレベルで起動するようにします。

以下NHKラジオストリームの再生スクリプトnhk.shです。管理者権限でユーザuserを指定してvlcを起動します。

#!/bin/bash

# if no command line arg given
# set rental to Unknown
if [ -z $1 ]
then
  rental="*** Unknown NHK channel ***"
elif [ -n $1 ]
then
# otherwise make first arg as a rental
  nhk=$1
fi

# use case statement to make decision for rental
case $nhk in
   "ch1") sudo killall mplayer rtmpdump vlc; sudo -H -u user bash -c 'cvlc -q --control=lirc https://nhkradioakr1-i.akamaihd.net/hls/live/511633/1-r1/1-r1-01.m3u8 &';;
   "ch2") sudo killall mplayer rtmpdump vlc; sudo -H -u user bash -c 'cvlc -q --control=lirc /home/user/music/nhk.m3u &';;
   "fm") sudo killall mplayer rtmpdump vlc; sudo -H -u user bash -c 'cvlc -q --control=lirc https://nhkradiobkfm-i.akamaihd.net/hls/live/512070/1-fm/1-fm-01.m3u8 &';;
esac

管理者権限にて起動するかテスト

$ sudo bash ~/music/nhk.sh ch1
$ sudo bash ~/music/nhk.sh ch2

0 Likes

#3

/etc/asound.conf内のdmixの以下の箇所はコメントアウトして下さい。

#   ipc_key_add_uid false   # let multiple users share
#   ipc_perm 0666           # IPC permissions for multi-user sharing (octal, default 0600)
0 Likes

#5

VLCコマンド制御

netcat(nc)によりターミナル経由でもVLCをコントロール出来ます。

vlc lirc
https://wiki.videolan.org/VLC_HowTo/Use_with_lirc/
netcat
https://linux.die.net/man/1/nc

$ vlc -I rc --rc-host localhost:12345 /home/ondra/playlist.m3u

$ echo “pause” | netcat localhost 12345 -q 1

$ echo “play” | netcat localhost 12345 -q 1

-q 1 —> netcat 1sec後quit

0 Likes

#6

ボリューム設定
gain=1.00に指定しないとボリュームアップした時に音が割れるかもしれません。

[alsa] # ALSA audio output

# Audio output device (string)
#alsa-audio-device=default

# Audio output channels (integer)
alsa-audio-channels=2

# Software gain (float)
alsa-gain=1.000000

..........................................................

# Audio gain (float)
gain=1.000000 

# Audio output volume step (float)
#volume-step=12.800000

# Remember the audio volume (boolean)
volume-save=0  ボリューム設定の上書き無効
0 Likes