はじめに
アニメをテレビで見たいと思ったのです。NSVやFLVで全話を集めてDVD±RWに焼いて見ていました。普通のDVDプレーヤーでもmpgファイルならデータファイルのまま(オーサリング無しで)再生できました。ただ、音量がバラバラで。
と言うことで、FLVMP3Gainを作ったりしました。
その後、DVIX、MKV、OMGなどが多くなってきました。最近は、1280x720だったりします。
したがって、この話は世間では、もう終わっているのかもしれません。
1.音声も極端に小さいものは見なくなった。
2.世間ではテレビやDVDが「デジタル」になって、変わっているらしい。
3.パソコンがテレビに繋がりやすくなっているらしい。
も、VolMaxを作りました。当分これで行きます。
バッチファイルを毎回書いて使っていましたが、GUIで入力の形式にかかわらず、一律の基準に合った出力が自動で得られます。
flv,avi,mp4,ogm,mkv,asf,wmv,dvix,rmvbを変換します。
欠点:
1.2回入力ファイルを処理するので遅い
2.音声を一旦分離するので、その分余分なディスクスペースがいる。
利点:
1.入力ファイルを調べて適切な変換方法を選択する手間を自動化できた
2.音のズレやプツプツがおきない
3.ffmpegへの入力が常にPCM音声,RAW映になるので、動画の種類による問題がおきない
11/21 2009
V1.8にしました。検証用にフィルタ、スプリッタ添付してダウンロードサイズが大きくなっていたので、これを削除してアップロードし直しました。他に変更はありません。Windows7やx64であったフィルタ、スプリッタの問題は無くなっているようで、cccpをインストールすれば済むようです。記載内容からも検証用フィルタ、スプリッタの話を削除しました。
11/18 2009
- V1.7 をリリースしました。
preAudio.exe を変更しました。
- 理由
mp4コンテナのAAC音声のサンプリングレートを半分に誤認するサンプルがありました。
これは、コンテナ(ファイルヘッダ)には、24000Hzと記しながら、実態は48000Hzであると言うものです。DirectShowのスプリッタは、24000Hzと報告しますが、デコーダは正しく48000Hzで出力します。これをファイルに書き込んでWAVヘッダを付けるときに、24000Hzとしていることが判りました。 AACで24000Hz以下なら、2倍の値を書き込むように修正しました。
- MediaInfo の表示では AAC(Version 4)(LC)(SBR)となります。
- この問題は、他のコンテナでも起きているのかどうかはわかりません。
また、旧来 AAC で24KHz以下を使っていたなら、そちらが問題を起こします。
様子を見ます。
- この問題の悩ましいところは、Media Playerでは正常に再生できることです。
DirectShowを使うことで、「再生できるものは変換できる」を実現したかったので残念です。Media Playerと同じ方法が採りたいのですが仕掛けがわかりません。
詳細を「MP4のAAC」、「AACのSBR」に書きました。
7/30 2009
mp4 で、音がぶつぶつ(途切れる、引っかかる感じ)になるものが複数ありました。これは、元の動画を再生してもブツブツ言うので諦めます。
念のため、haali Splliter でも確認しましたがブツブツ言います。
7/22 2009
Vista、Windows 7 の動作確認をしました。それぞれ、x86、x64 の版で試しました。
- FFDShow や スプリッタがx64では単純にいかなかったので、上手くいく方法に記述内容を更新します。
- アップロードしてあるものは差し替え依頼しました。V1.5 ==> V1.6
- x64 OSでは、PreAudio.exe、PreVideo.exeは、プラットフォームをx86に設定してビルドし直す必要がありました。(理由が納得できません。C#はCPU非依存の中間コード方式では?)
- ffmpegを新しいものにしました。
- 見直しをしていて、FlvMP3Gain を作り直すことにしました。
私自身はもう使っていないのですが、以下のように位置づけをしたいと思います。
ffmpegは、DirectShow を使わない独立したプログラムですが、
・ VolMaxは、あえて ffmpeg のデコード機能を使わない。デコード動作は、DirectShow を使う。理由は音がプツプツ言ったり、ずれたりすることがあったので。
動画を作った人は、パソコン(DirectShow)で、きれいに再生できるように努力しているはずだ。
・FlvMP3Gain は、現在は音量を調べる都合で自前でデコードできるMP3音声に限っているが、変換は ffmpeg 次第。
したがって、mp3の条件を外して、すべて ffmpeg 次第にする。ffmpegだって進化していく。
6/2 2009
久しぶりに変換できない FLV ファイルに出会いました。これは、Audio:0xaf(AAC),Video:0x17(H.264/AVC)と言うことのようです。
これは私の見ているドキュメントには、音の10、映像の7ともに未定義です。FlashPlayer で表示できるので新しく採用したと言うことだと思います。
これが変換できない理由は、スプリッタが、この新しい FLVのコーデックIDを知らないことが原因です。コーデック自体は、一般的なもので、単に対応が付けられないだけです。
FLVSpliter.ax の新しそうなものを探して見ました。
FLVSplitter_20081115.zip
は、OKでした。(ファイルのプロパティの「バージョン情報」は、1.0.0.5)
RealMediaSplitter.ax は、更新されていないようです。
Combined Community Codec Pack に含まれるFLVSpliter.ax は、ダメでした。
ファイルのプロパティの「バージョン情報」は、1.1.796.0 でした。
FLVSplitter_20081115.zip は、SourceForge の guliverkli2 プロジェクトの提供物で、SVNの履歴もありました。
11/13 2008 に、H.264+AAC の対応が行われています。
その後には、メタデータをスキップする際の不具合、Nellymoserの対応の修正が行われています。
FLVSplitter_20081115.zip も最新ではないことになります。
7/4 2008
VolMax_1_5.zipへの差し替え依頼をしました。
23.98fpsもDVDプレーヤー、TVで普通に再生できていたと思っていましたが、FLV 480x288, 25.00 fpsを変換して、23.98fpsになったのですが垂直同期ズレ状態で再生されました。PCでは正常に再生されます。29fps以下は23.98fpsになるように、バッチファイルを作っていましたが、60fps以下は29.97fpsにすることにしました。
5/12 2008
VolMax_1_4.zipへの差し替え依頼をしました。
1.720x592というサイズのWMVファイルがありました。このファイルは、このサイズのままmpegに変換され、わたしのDVDプレーヤ、TVでは同期ずれして再生できませんでした。DVDのサイズを超えるときは縮小しているつもりでしたが、幅にしか効いていませんでした。幅が720,640なら、縦だけを480にします。その他は、縦横比を保持して縮小します。
2.パイプのファイルが大きくなるのではと、ffmpegをPreVideoより優先度を上げてみたのですが、かえって重くなったので戻しました。
3/29 2008
ファイル一覧のGridViewがリサイズされないことに気が付きました。
VolMax_1_2.zip
への差し替え依頼をしました。
3/19 2008
「[Vector] ライブラリ公開のお知らせ」がきました。
http://www.vector.co.jp/soft/winnt/art/se450447.html
下記、修正したV1.1に差し替えを依頼。
1.MKVで、日本語音声トラックが選択されない件の修正
2.プロセスの優先度を変更。
通常 ffmpeg:通常 preAudio,preVideo:通常
通常以下 ffmpeg:通常 preAudio,preVideo:通常以下
低 ffmpeg:通常以下 preAudio,preVideo:低
3/11 2008
MKVの音声選択の件
■IASMStreamSelect
Windows Media Playerでも音声選択できる。やっとたどり着いたのは、Haali スプリッタは、IAMStreamSelectを実装していると言うこと。
これを使うように修正予定。
■Haali Splitterの使い方
オプションで「jpn」を設定する以外に、実行中はタスクトレーのアイコンで選択ができるようになっている。
3/10 2008
MKV音声トラック選択の件。Haali media splitterがソース+スプリッタの機能をする。音声出力は1pinで、Haali自身が音声トラックを決めている。「Combined Community Codec Pack」「Filters」「Haali Media Splitter Settings」で「Options」「Languages」「Audio language priority」を選択して、「jpn」を設定しておけば、とりあえず日本語になる。
3/8 2008
ベクターに公開申請は送りました。まだ、公開もされないうちに、問題に気が付きました。MKVで2ヶ国語の音声の場合、日本語が自動的に選択されていません。音声トラックが、複数ある場合、スプリッタの音声出力が複数あるものと思っていました。しかし、MKVはソースフィルタとスプリッタが1つのタイプで、音声ピンも1つでした。現状はこれから調べて対策します。
|