この記事の内容
音声と映像に一定時間ずれのある(どんどんずれるのではない)wmvを、ffmpegを使用して補正する方法を記載しています。
mp4の場合は、wma → aac、wmv → mp4 と読み替えれば行けるかも。
環境
- Windows10
- ffmpegをインストール済み
概略
- 動画から音声と映像を分離する
- 音声または映像の先頭を削る
- 結合する
1. 音声と映像を分離する
以降の「ファイル名」は、拡張子を含めないものとする。
ffmpeg -i 入力動画のファイル名.wmv -vcodec copy -an 保存先とする映像ファイル名.wmv
ffmpeg -i 入力動画のファイル名.wmv -acodec copy -vn 保存先とする音声ファイル名.wma
※ffmpegは、指定した出力ファイルの拡張子で出力コーデックを判断しているようなので、拡張子が適切なものでないとエラーになる。
2. 音声または映像の先頭を削る
2-a. 音声が遅い場合
音声の先頭を削ることで、遅れを解消させる。
ffmpeg.exe -ss 取り込み開始時間 -i 音声ファイル名.wma -c copy 保存先とする補正後の音声ファイル名.wma
「取り込み開始時間」の単位は秒で、小数(0.1など)を指定可能。遅れ分の時間を指定すればよい。
2-b. 映像が遅い場合(※試してない)
音声の場合と同様。(拡張子だけが音声と異なる。)
ffmpeg.exe -ss 取り込み開始時間 -i 映像ファイル名.wmv -c copy 保存先とする補正後の映像ファイル名.wmv
3. 結合する
下記で結合できる。※補正後のファイルを入力として指定することを忘れずに。
ffmpeg -i 音声ファイル名.wma -i 映像ファイル名.wmv -vcodec copy -acodec copy 保存先とする結合後の動画ファイル名.wmv
音声と映像の引数に渡す順序は逆でもよい(はず)。