「wmv や flv 形式の動画ファイル」を、「avi や mp4 形式など別の動画フォーマットに変換」した場合に発生する音ズレ を解消する方法を紹介したページです。
変換前は音ズレしていないのに、変換後の動画は途中からドンドンに音ズレていく・・・・というタイプの音ズレに有効な手段です。
wmv、flvファイルの音ズレの原因
wmv、flv で作成された動画が、可変フレームである可能性があります。
- 可変フレームで作成された動画は、1秒間に表示されるフレーム数が一定ではありません。
- 可変フレームを想定しないエンコードツールでこれらの動画を変換すると、(固定フレームの動画としてエンコードを行ってしまうため) 音声と動画が徐々にずれていくことになります。
- wmv や flv 形式の動画の場合、これが音のズレる一番の原因となります。
可変フレームで変換された wmv、flv動画は、変換の際にちょっとしたコツが必要になります。可変フレームで出力された動画は、他の形式へ再変換・再圧縮するには不向きです。
wmv、flvファイルの変換で音ズレ回避の方法
個人的な解決策ですが、私の場合これを解決するために『Avisynth』というフリーツールを利用しています。
やり方
- 普段 wmv・flvファイルを変換しているソフトに、Avisynth経由でwmv、flvファイルを読ませてやる。
- この時、wmv・flvファイルの読み込みには「DirectShowSource」を利用する。
- スクリプト例
DirectShowSource("C:\movie\file.wmv", fps=29.97,convertfps=true)
※上記のパス、ファイル名、フレームレートは各自で設定
- スクリプト例
補足情報
- 上記のスクリプトが作動するのはAvisynth2.5.6以降
- Avisynthそのものがよく分からない、という場合
→サイト内: 動画エンコード AviSynth
→外部サイト: AvisynthWiki - AviSynthでflvファイルが読めない場合
→ flvファイルがAviSynth、WindowsMediaPlayerで読めない
携帯動画変換君を使った場合
-
携帯動画変換君をインストールしたフォルダ内の
cores』フォルダ内にある『AVS_Skelton.avs』をテキストエディタで開く。 - DirectShowSource~~~で始まる一文を以下のように書き換える
DirectShowSource("<%InputFile%>", fps=15,convertfps=true)
(注1:空白含め、全角文字が含まれないよう注意しましょう)
(注2:fpsは変換後のフレームレートにあわせた方が無難だと思います)
こんだけです。
フリーソフトとして配布されているメジャーな動画変換ツールは、大抵Avisynthを読めるように出来ています。
あとがき
wmvファイルやflv動画を変換して音ズレに悩んでいる人は是非試してみてください。大抵は、一発で音ズレ解決すると思います。
現在利用している動画変換ツールがAvisynthファイルに対応していない、という場合は、これを機に思い切ってAvisynthの読み込めるツールを導入するのもアリかと思います。