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

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 … 技術評論社

参考リンク