mpvで動画の音ズレを修正しながら見る方法など色々な動画再生方法

mpvで動画の音ズレを修正しながら見る方法など色々な動画再生方法

YouTubeなどに公開されている動画には映像と音声がズレているものが結構あります。それを修正しながら見る方法の解説です。

目次

音ズレの種類

音ズレにも2種類あるようでここで使えるのは映像に対して音声が一定の速度でズレている場合です。一定の速度ではなく一定の割合でズレている場合もあります。この場合映像が進む毎に映像と音声のズレが広がったりします。この場合は全く使えないわけではないですが適宜修正しながら見るといった感じになります。

動画の再生ツールには

動画の再生にはmpvを使います。フリーの動画プレイヤーでオープンソースで開発されています。mpvは多種多様な動画形式に対応しており外部コーデックも不要です。またストリーミング再生も可能でYouTubeなどの動画もダウンロード無しに直接mpvで再生可能です。

a free, open source, and cross-platform media player
https://mpv.io/

またmpvの最大の特徴は非常に軽く軽快に動作することとキーボードで全て操作が可能な事です。

mpvのインストール方法

mpvはWindows、Mac、Linuxなど様々な環境で動作します。オープンソースなのでソースからコンパイルすることも可能ですし各環境のバイナリも公開されています。

mpv.io | Installation
https://mpv.io/installation/

僕の環境ではMacはHomebrew、Ubuntuはapt-getでインストールしています。Windows版は確かバイナリをダウンロードして適当な場所に配置しただけで動いたように記憶しています。ログを見るとMacでは下記のようにインストールしていました。

% brew install ffmpeg --with-openssl --with-rtmpdump --with-libvorbis
% brew install mpv
% brew linkapps mpv

mpvの便利な動画再生方法いろいろ

いくつか方法はあるかと思いますが、拡張子にmpvを関連付けてもいいですしコマンドラインからmpvを呼んでも良いと思います。ただコマンドラインから起動すれば複数の動画ファイルを連続して再生できたり様々なオプションが付けられるのでより便利です。

1. 特定ディレクトリの動画/音声ファイルを全て再生
% cd ~/Movies
% mpv ./*

ちなみに僕は普段は基本的にはコマンドラインから起動することが多いです。iTermからプレイリストや複数動画を指定し自動ループで再生しています。裏でバックグラウンドミュージックなどを流す場合はこの方法ですね。

2. ループ付きで特定ディレクトリの動画/音声ファイルを全て再生
% cd ~/Movies
% mpv --loop=inf ./*

ループ付きで再生するならこんな感じです。

3. 最近1週間に追加された動画/音声ファイルをループ付きで再生
% cd ~/Movies
% find -E . -type f -ctime -7 -iregex ".+\.(mp.*|flv)" > recent.playlist
% mpv --loop=inf --playlist=recent.playlist

プレイリストも使うことができます。よく使うのは最近追加したファイルをプレイリストにして再生する方法です。

4. 作業中に音声だけ聞きたい時、ループ付きで再生
% cd ~/Movies
% mpv --loop=inf --no-video ./*

ミュージックPVなどで動画の音声だけ聞きたい場合。作業しながら音楽/音声だけ聞く事ができます。

5. YouTube動画をループ再生
% cd ~/Movies
% mpv --loop=inf "https://www.youtube.com/watch?v=4JkIs37a2JE"

YouTubeなどの動画をストリーミング再生することも可能です。ブラウザを開かないのでPCの動作が重くならないのがメリットです。またループ再生も上記と同じように可能です。動画ファイルのURLをそのまま指定すれば再生できます。なおエスケープ文字が入るのでURLはダブルクオーテーションで囲って下さい。広告が入らないこともメリットでしょうか。

6. 倍速再生、スロー再生
% cd ~/Movies
% mpv --speed=3 ./*
(3倍速で再生、2倍速であれば2を指定、半分の速度でスロー再生は0.5を指定)

mpvは動作再生速度を自由にコントロールすることができます。起動時に「--speed=数値(0.1 - 100)」オプションをつけても良いですし、普通に再生した後に、[ ] キーでコントロールしても可能です。再生後に変更するほうが動画を見ながらできるので便利だと思います。

mpvのキーバインド

mpvはキーボードで全ての操作が可能です。マウスでの操作用に再生/ストップ/早送り/巻き戻しなどのボタンを動画上に表示することもできますがせっかくなのでキーボードで操作するのが便利ではないでしょうか。デフォルトのキーバインドはこちらに説明があります。

mpv.io manual
https://mpv.io/manual/stable/

よく使う部分としては、

  • 左右の矢印キーで1秒毎の早送り/巻き戻し
  • 上下の矢印キーで5秒毎の早送り/巻き戻し
  • スペースキーで再生/一時停止
  • < > で次/前の動画へ
  • 9 0 でボリューム調整
  • [ ] で再生速度の調整
  • m でミュート
  • f でフルスクリーン
  • q/Q で終了/再生状態を保存し終了

などでしょうか。その他動画の速度や向き、品質、ウインドウサイズを変えたり、スクリーンショットを取ったり、字幕を制御したり、全体ループ、1動画ループ、A-Bループなども利用できます。

またmpvではキーバインドは自由にカスタマイズ可能です。なので現在はvim風のキーバインドを入れたりしながらカスタマイズしています。

mpvでの音ズレ修正方法

mpvでは映像と音声がズレている場合修正しながら閲覧することが可能です。audio-delayのコマンドオプションが用意されていますのでそちらを利用します。音ズレを治すために再エンコードする方法もありますが時間や手間がかかります。mpvでは動画自体の音ズレが治るわけではありませんが、再生の時に手軽に調整できるのが大きなメリットかと思います。

デフォルトのキーバインドでは動画再生中に、C-+ , C-- で調整できます。映像を見ながら調整できますので便利ですし非常に簡単です。

またコマンドラインからの起動時に --audio-delay=<sec> の形で指定することも可能です。何度も再生して音ズレの秒数がわかっている場合はこちらも使えるかと思います。

キーバインド紹介

僕が現在利用しているキー設定ファイルを下記からダウンロード可能です。英語キーボード用なので日本語キーボードでは使いづらい点があるかとは思います。例えば先程の音ズレは、C-= , C-- に変更しています。これは英語キーでは、=キーと-キーが横並びなためです。+を入力するにはShift+=を押さないといけないため変更しています。

[mpv] input.conf

参考