音ずれについて

音ずれには -async オプションをつければ解決するものや wmvからの変換で起きるものなどありますが、ここでは 元の動画が23.976fpsであった場合に生じる音ずれについて説明します。

症状としては 「はじめは問題ないのにだんだんズレが大きくなってくる」というものです。 wmvからの変換ではないのにこの症状になる人は 以下を読めば解決するかもしれません

(wmv等の変換については4.を見てください。)

1.動画のフレームレートを調べる

はじめに変換したい動画のフレームレート(fps)を見ておきます
「video easy info」使用例
ここではvideo easy infoというソフトを使ってます。
23.976fpsとありますね。
23.976でなくても小数第3位まであるレートなら同じ問題だと思われます。
29.97等 小数点第2位までのフレームレートである場合は
音ずれの原因が別のところにあると思うので 他を参照してください

この動画ファイルをffmpegに渡してみると
ffmpegログウインドウ
Input 23.98fpsとなってます。これはffmpegの性質であって携帯動画変換君のせいではありません。
作者さんが言っていたのもこのことかと思います

本当は23.976fpsであるものを23.98fpsとして処理すれば 映像と音声の同期がおかしくなるのは明らかですね。
たった0.004フレーム/秒 のズレでも何分もすれば耐え難いズレになるのです。

2.動画を調節する

どうやらffmpegは小数第3位を計算しないようなので 元の動画をffmpegが正しく読めるようにあらかじめ調節してやればいいのです。

自分はVirtualDubを使いましたが 他のソフトでもいいと思います
ここではVirtualDubでの方法を書きます。

まずVirtualDubをダウンロード。
日本語化プロジェクトに日本語化パッチがあります。

解凍後、VirtualDub.exeをダブルクリックで起動。左上の ファイル→開く か、ドラッグ&ドロップで変換したいファイルを読み込みます。
その後 上の 映像→フレームレート とたどります。
「VirtualDub」使用法1

映像フレームレートコントロールの画面がでますので次のようにしてください。
「VirtualDub」使用法2

ffmpegが正しく読めるならどんな値でもいいと思いますが できるだけ近いほうが違和感もないだろうということで 23.98fpsにします。

最後に 映像→ストリームの直接コピー を選びます。あとは ファイル→名前をつけて保存 として 適当なところへ保存してください。
そのファイルを携帯動画変換君で変換すると 音ずれしない動画ができます。
(ストリームの直接コピーができない場合は 仕方ないので完全処理モードのまま名前をつけて保存してください。時間がすごくかかります)

3.そのほか

自分は -async 100 オプションをつけています。効果があるのかしりませんが
不安な人は一応つけてみるといいでしょう。

→Q. 音声がずれるんですけど… A. Trancoding.iniをメモ帳などで開いていただき、ffmpegの設定の中に 「-async 1000」など任意の数値を加えてみてください。 (「-async 1」はオーディオストリームの開始が修正される特殊なケースです) ごく稀に音声がビブラートがかかったみたい(テレビでよくある「音声は変えています」 みたいな音)になることがありますが、その場合は「-async」の数値を変えて試してみてください。

また、PCで確認するときはQTなどで見るのがいいです。 自分はMediaPlayerClassicで見てたのですが どうもまだ0.1秒ずれると思ったら このプレイヤーのせいでした(笑) QTで見たところ全くずれてませんでした。

avisynthのConvertFPSなどを使えば再圧縮なしで変換できるかもしれません。

以上 暇な上によくわからなかったのでページを作成しましたが 参考になればと思います。書く場所違ったら移動、削除などしてください。

4.WMVファイルなどで音がずれる場合

詳しくはAvisynthを使用して読み込むを参照してください。

AVS_Skelton.avsの中を DirectShowSource("<%InputFile%>",convertfps=true) と修正して読み込ませることで、音ズレが起きなくなる可能性があります。 また、それでも駄目な場合、 DirectShowSource("<%InputFile%>",fps=23.976,convertfps=true) と修正して読み込ませることで、音ズレが起きなくなる可能性があります。 (23.976の部分はソースに合わせること)

コメント

お名前:
  • 各エンコーダの仕様なのでサンプルのズレをサンプリング速度(44100や48000)で換算して補正すればいい -- 2011-03-06 (日) 08:46:18
  • 音ズレはサンプル数でLAME:576/faac:1024/QuickTime AAC:2112/Nero:2624ズレるよ -- 2011-03-06 (日) 08:42:37
  • 拡張子はaviで症状は最初から音ずれすると言うものなんですがどうしたらいいですか? -- 2009-12-01 (火) 00:14:25
  • WMVが,convertfps=trueで解決しました。ありがとう。 -- 2009-03-18 (水) 04:30:01
  • 910SHのasfファイルだと項目2のVirtualDubが対応してないよぉどうしよう -- むむむ? 2009-01-20 (火) 09:14:53
  • 俺の場合はQTで見た方が音ズレしたけどなぁ。MPCの音ずらして再生するオプションも切ってるし。 -- 2008-12-31 (水) 00:08:05
  • そうだな -- 2008-12-20 (土) 23:04:06
  • 分からないなら調べろ 調べても無理ならあきらめろ -- 2008-10-14 (火) 13:47:01
  • DirectShowSource("<%InputFile%>",convertfps=true) とどうやって修正するのかわかりません泣 -- 2008-07-27 (日) 20:24:14
  • 元ファイルが1280x720のH.264でPSP用に変換しようとすると音ずれしてしまいます。 イロイロと試したのですが解消できません。 -asyncオプションつけるとerror1で止まってしまいます。 -- 2008-07-25 (金) 01:24:44

最新の10件を表示しています。 コメントページを参照


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-06-06 (金) 23:27:08 (3038d)