Help us understand the problem. What is going on with this article?

Node.jsを使ってVLC Playerを操る

More than 1 year has passed since last update.

Node.jsを使わないといけないわけじゃないけど、
サーバーサイドでメディアプレーヤーをいじれると楽しいよねというわけで。

やり方
(Ubuntuの場合)

  • vlcをインストールする $ sudo apt-get install vlc
  • vlcを起動する
  • メニューバーからツール/設定を選ぶ
  • 設定の表示を「シンプル」から「すべて」に変更する
  • メインインタフェース/Luaを選ぶ
  • Lua Telnetにパスワードを設定して保存する
  • メニューバーから表示/インタフェースの追加/Telnetを選択する
  • Node.jsでtelnet接続を行って、動画の再生コマンドを送信する

サンプルコード
(パスワードに'admin'を設定した場合)

var net = require('net');

var options = {
    host: 'localhost',
    port: 4212
};

var client = net.connect(options);
client.on('connect',function() {
    client.write('admin\r\n'); // パスワード
    client.write('stop\r\n'); // 再生中のファイルを停止
    client.write('clear\r\n'); // 再生キューをクリアする
    client.write('enqueue file:///home/hoge/hogehoge.mpg\r\n'); // 再生キューにファイルを追加する
    client.write('play\r\n'); // 再生開始
    client.end();
});

※注意点
コマンドによっては受け付けてから実行されて次のコマンドを受け付けられるようになるまでに時間が必要なものもある。play、pause、seek系は特に。この時間帯に送ってしまったコマンドは無視される。のでこれ系のコマンドの前はsetTimeoutとかを駆使して適切にwaitをつけてあげる必要がある。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away