音楽の速度をコマンドラインから操作する方法を探していたら、いいソフトを見つけたので紹介。
VLCメディアプレーヤー
VLCメディアプレーヤーはいわゆる音楽再生用のメディアプレイヤー。音楽再生に必要な機能はある程度実装されているようだ。
特徴は、マルチプラットフォーム、対応コーデックが豊富ということだが、自分がVLCで特に気に入ったのは、
- オープンソースであること
- 豊富すぎるコマンドラインインタフェース(やりたいことは全てできそう)
である。
VLCを使ってみる
ダウンロードは以下から。インストーラを立ちあげてインストール。
VideoLAN - オープンソースのビデオフレームワークであるVLCメディアプレイヤーの公式ホームページ
外見はこんな感じ。
速度調整をするためには、ツールバーの[表示] > [ステータスバー]にチェックを入れる。下に[1.00x]という表示が現れるので、マウスでドラッグして変更する。再生中の音楽をリアルタイムで変更できる。0.01単位で変更できるようだ。
また、ネットワーク上のファイルを開くことができるようだ。ツールバーの[メディア] > [ネットワークストリームを開く]を選択して、URLを入れる。youtube の再生もできる。
コマンドラインから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]に対応する名前は以下のページに載っている。
速度変更に関わるキーは以下。
- 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 … 技術評論社
参考リンク
-
VLC メディアプレイヤー公式サイト
-
VLC Media Playerのwiki
-
Wikipedia
-
VLC の使い方公式ドキュメント