• このエントリーをはてなブックマークに追加

音楽の速度をコマンドラインから操作する方法を探していたら、いいソフトを見つけたので紹介。

VLCメディアプレーヤー

VLCメディアプレーヤーはいわゆる音楽再生用のメディアプレイヤー。音楽再生に必要な機能はある程度実装されているようだ。

特徴は、マルチプラットフォーム、対応コーデックが豊富ということだが、自分がVLCで特に気に入ったのは、

  • オープンソースであること
  • 豊富すぎるコマンドラインインタフェース(やりたいことは全てできそう)

である。

VLCを使ってみる

ダウンロードは以下から。インストーラを立ちあげてインストール。

VideoLAN – オープンソースのビデオフレームワークであるVLCメディアプレイヤーの公式ホームページ

外見はこんな感じ。

skitch.png

速度調整をするためには、ツールバーの[表示] > [ステータスバー]にチェックを入れる。下に[1.00x]という表示が現れるので、マウスでドラッグして変更する。再生中の音楽をリアルタイムで変更できる。0.01単位で変更できるようだ。

また、ネットワーク上のファイルを開くことができるようだ。ツールバーの[メディア] > [ネットワークストリームを開く]を選択して、URLを入れる。youtube の再生もできる。

skitch.png

 

コマンドラインからVLCを操作する

環境

  • Windows 7 64bit(ただし、32bit版をインストールした)

コマンドラインからVLC起動

まずは基本から。コマンドラインからVLCを立ち上げるには、まずはコマンドプロンプトを起動。インストールしたディレクトリに移動して、vlcに再生したいファイルを引数にして実行する。

C:\Users\TSUNEMICHI>cd "C:\Program Files (x86)\VideoLAN\VLC"
C:\Program Files (x86)\VideoLAN\VLC>vlc Concerto_for_Orchestra.m4a

VLCをRCインターフェイスで操作する

VLCをRCモードで立ち上げることで、コマンドラインからいろいろと操作できる。

$ vlc -I rc [ファイル名やディレクトリ名]

で起動すると、新しいコンソールが立ち上がる。ここにコマンドを打ち込んで、いろいろと操作する。対応コマンドは helpと打ちこむとずらずらと出てくる。以下の操作がコマンドラインからできる。

help
+—-[ リモートコントロールコマンド ]
|
| add XYZ . . . . . . . . . . . . . XYZ をプレイリストに追加
| enqueue XYZ . . . . . . . . XYZをプレイリストにキューイング
| playlist . . . . . . . 現在のプレイリスト中にある項目を表示
| play . . . . . . . . . . . . . . . . . . . . ストリーム再生
| stop . . . . . . . . . . . . . . . . . . . . ストリーム停止
| next . . . . . . . . . . . . . . . . 次のプレイリストの項目
| prev . . . . . . . . . . . . . . . . 前のプレイリストの項目
| goto . . . . . . . . . . . . . インデックスにある項目に移動
| リピート [オン|オフ] . . . プレイリストのリピートの切り替え
| loop [on|off] . . . . . . . . プレイリストループの切り替え
| ramdom [on|off] . . . . . . . . . . ランダム再生の切り替え
| clear . . . . . . . . . . . . . . . . プレイリストのクリア
| status . . . . . . . . . . . . . . 現在のプレイリストの状態
| title [X] . . . . . . . . . 現在の項目のタイトルを設定/取得
| title_n . . . . . . . . . . . . . 現在の項目の次のタイトル
| title_p . . . . . . . . . . . . . 現在の項目の前のタイトル
| chapter [X] . . . . . . . 現在の項目のチャプターを設定/取得
| chapter_n . . . . . . . . . . . 現在の項目の次のチャプター
| chapter_p . . . . . . . . . . . 現在の項目の前のチャプター
|
| seek X . . . . . . . 再生中インスタンスのジャンプ先指定(秒)
| pause . . . . . . . . . . . . . . . . . 再生停止の切り替え
| fastforward . . . . . . . . . . . . . . . . 最大倍率に設定
| rewind . . . . . . . . . . . . . . . . . . . 最低倍率に設定
| faster . . . . . . . . . . . . . . . ストリームの早送り再生
| slower . . . . . . . . . . . . . . . . ストリームの遅延再生
| normal . . . . . . . . . . . . . . . . ストリームの通常再生
| frame . . . . . . . . . . . . . . . . . フレームごとに再生
| f [on|off] . . . . . . . . . . . . . . 全画面表示の切り替え
| info . . . . . . . . . . . . . . . . 現在のストリームの情報
| stats . . . . . . . . . . . . . . . . . . . 統計情報の表示
| get_time . . . . . . . . . . ストリームの最初からの経過時間
| is_playing . . . . . . . . . . ストリーム再生中:1, その他:0
| get_title . . . . . . . . . . . 現在のストリームのタイトル
| get_length . . . . . . . . . . . . . 現在のストリームの長さ
|
| volume [X] . . . . . . . . . . . . . . . . 音量の設定/取得
| volup [X] . . . . . . . . . . . . 音量を X ステップ分上げる
| voldown [X] . . . . . . . . . . . 音量を X ステップ分下げる
| adev [X] . . . . . . . . . . オーディオデバイスの設定/取得
| achan [X] . . . . . . . . . オーディオチャンネルの設定/取得
| atrack [X] . . . . . . . . . オーディオトラックの設定/取得
| vtrack [X] . . . . . . . . . . . ビデオトラックの設定/取得
| vratio [X] . . . . . . . . ビデオのアスペクト比の設定/取得
| vcrop [X] . . . . . . . . . ビデオのクロッピングの設定/取得
| vzoom [X] . . . . . . . . . . . . . ビデオズームの設定/取得
| snapshot . . . . . . . . . . . ビデオスナップショットを撮る
| strack [X] . . . . . . . . . . . . 字幕トラックの設定/取得
| key [hotkey name] . . . . . . ホットキー操作のシミュレート
| menu . . .[on|off|up|down|left|right|select] メニューの使用
|
| help . . . . . . . . . . . . . . . . . このヘルプメッセージ
| longhelp . . . . . . . . . . . . . . . 長いヘルプメッセージ
| logout . . . . . . . . . . . . 終了する(ソケット接続の場合)
| quit . . . . . . . . . . . . . . . . . . . . . . VLCを終了
|
+—-[ ヘルプの終り ]

さらに、key [hotkey name](ホットキー操作のシミュレート)を使えば、上記にない操作もできる。[hotkey name]に対応する名前は以下のページに載っている。

Hotkeys table – VideoLAN Wiki

速度変更に関わるキーは以下。

  • Faster key-faster 50%速度を上げる
  • Slower key-slower 50%速度を下げる
  • Normal rate key-rate-normal 通常の速度
  • Faster (fine) key-rate-faster-fine 10%速度を上げる
  • Slower (fine) key-rate-slower-fine 10%速度を下げる

たとえば、10%だけ速度を上げる場合は、[key key-rate-faster-fine]と打ち込む。

VLCサーバにコマンドラインから速度変更を依頼する

起動中のVLCにコマンドを送って操作するために、telnet通信を利用することができる。まずは、VLCをサーバとして起動する。[–rc-host [ホストアドレス]:[Port番号]]のオプションをつける。

> vlc -I rc –rc-host localhost:8080

そうすると、telnetコマンドでサーバにアクセスすることができる。アクセスしたらコマンドを投げればよい。

> telnet localhost 8080

クライアント側からリモートのホストに通信してコマンドを実行するためには、Linuxではこういう書き方もあるみたい。Windowsでも、Cygwinではできたけれども、コマンドプロンプトからだと、やりかたがワカラなかった。

$ (sleep 0.05;echo key key-slower;sleep 0.05)|telnet localhost 8080

2011年11月25日 VLCをショートカットキーからリモート制御する方法 telnet編:FreeBSD Daily Topics|gihyo.jp … 技術評論社

参考リンク