スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DGIndex 1.58バグ対応

BS11などのBS放送から作成したTSをDGIndexのバージョン1.58で処理すると
AACファイルが正しく出力されない事があるとの指摘を受けたので調べてみた。

手元に残ってたTSファイルを処理してエンコードしてみたところ、確かに
CMから本編に切り替わるあたりでうまく処理が行かずにAVIUTLでエラーになる。

ということで対応策を調べたところ、有志の方がエラーが出ないように改造した
ソースを配布してくれているので、それを使うことにした。

Microsoft Windows SDK for Windows 7 and .NET Framework 4を使うやり方が
一番簡単なようだが、うちの環境(Win7 x64)ではなぜかビルドに失敗するので、
Visual Studioを使うやり方で説明する。




■必要なもの
Visual Studio 2012 Express for Windows Desktop
NASM
vcpp5
DGIndex_fix_mod

■環境の構築
1.Visual Studio
Visual Studio 2012 Express for Windows Desktopをダウンロードする。
私のPCには元々Visual Studio 2012 Express for Windows Desktopが入っていたので
そのまま使用したが、Visual C++ 2010 Expressでも多分大丈夫かと。
もちろん、上位バージョンは言わずもがな。
設定は特にいじらずにそのままインストールしてOK。


2.NASM
ここのDownloadから最新版のWin32のところにあるファイルをダウンロードして
インストールする。インストーラー版でもZIP版でもどちらでもOK。

2013/04/19時点の最新版はここ

更に、vcpp5をダウンロードし、拡張子をCABに変更し、解凍ソフトで
ファイルを開いて中にある「ml.exe」をNASMをインストールしたフォルダにコピーする。


3.dgindex158src_fix_mod
ここから最新のdgindex158src_fix_modをダウンロードして、適当なフォルダに解凍する。


以上でビルドに必要な環境は整いました。




次に、実際にビルドするためにVisual Studioの設定を変更します。

■Visual Studioの設定とビルド
1.ソリューションの変換
dgindex158src_fix_mod.zipの中にあるファイルは、旧バージョンのVisual Studioで作成された
ソースなので、2012用に変換する必要があるが、DGIndex.slnをダブルクリックすれば自動的に
変換が行われる。


2.アセンブラの編集
ソリューションの変換終了後、画面右側にあるソリューションエクスプローラーを展開していくと、
拡張子「asm」のファイルが3つあると思うので、それらのファイルを右クリックし、プロパティを開く。

vs_01.jpg

カスタムビルドツールの全般の中に「コマンドライン」という項目があるので、「d:\dosbin」の
部分をNASMをインストールしたフォルダに変更する。

また、プロパティページの構成が「アクティブ(Dubug)」となっていると思うので、これを
「Release」に変更した方も直しておく。
→面倒ならReleaseの方だけでもOK。

例:「C:\tool\nasm」にインストールした場合
vs_02.jpg



vs_02_2.jpg

これを下記の3つのファイル全てに行う。
idct8x8_xmm.asm
simple_idct_mmx.asm
skl_dct_sse.asm


3.ビルド設定の変更
メニューバーのビルド→構成マネージャーを開き、アクティブソリューション構成をReleaseに
変更して閉じる。


4.リンカーオプションの変更
ソリューションエクスプローラーのDGIndexを右クリックし、プロパティを開く。
構成プロパティ→リンカーの中にある「安全な例外ハンドラーを含むイメージ」を
はい→いいえに変更して適用する。

vs_04.jpg

※注意書き
うちの環境ではそのままビルドするとエラーになったので、仕方なくオプションを変えています。
変更しなくても上手く行くなら、代えない方が良いはず。

ちなみにエラーメッセージは↓
LNK2026: モジュールは SAFESEH イメージには安全ではありません。


5.リビルド
メニューバーのビルド→ソリューションのリビルドを実行


以上で、ソースファイルのあったフォルダの中にあるReleaseフォルダにDGIndex.exeが
出来ているはずです。



なんか、改造版のDGIndexのバージョンがたくさんあったり、しかも、どれもなかなか
上手く行かずにかなり苦労しました。

もし、同じような症状で悩んでる人の足しになればと思って記事にしました。
スポンサーサイト

コメントの投稿

非公開コメント

No title

こんにちは。
Microsoft Visual Studio 2012 Express をインストールし、記事で書かれている通りにやってみたのですが、
以下のエラーが出て、失敗してしまいます。

error MSB6006: "cmd.exe" はコード 9009 を伴って終了しました。 ファイル:C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 行:172 列:5 プロジェクト:DGIndex

Visual Studio 2010 Ultimate の試用版でも試してみましたが、やはり同様のエラーメッセージが表示されてしまいます。

どうすればいいでしょうか?もし対処法をご存知でしたら、教えていただきたいのですが…。

OS: Windows7 Home Premium 64bit
使用ソフト:
① Microsoft Visual Studio 2012 Express
② Microsoft Visual Studio 2010 Ultimate 試用版
(「Visual Studio 2010 Service Pack 1」、「Windows SDK 7.1」、「Windows SDK 7.1用 Visual C++ 2010 Service Pack 1 コンパイラ更新プログラム」インストール済み)

Re: No title

すいませんが、ちょっと分からないです。
可能性としては、プロジェクトの構成プロパティのプラットフォームツールセットがちゃんと「Visual Studio 2012 (v110)」になっているかどうかくらいでしょうか。

■動作確認済みソース
dgindex158src_fix_mod_20130430.7z

No title

プラットフォームツールセットは「Visual Studio 2012 (v110)」となっていましたが、やはりうまくいきませんでした。
ですが、記事の冒頭で紹介されていた、Windows SDK と .NET Framework 4 を利用する方法を試してみたところ、
うまくビルドすることができました。どうもありがとうございました。

ところで、ruquiadiaさんは以前、Aviutilを使って動画をmp4にエンコードする方法の記事を書かれていましたが、あの記事はとても参考になりました。
私がゼロから動画をエンコードできる環境を整えられたのも、ruquiadiaさんの記事のおかげです。
また、その後のエンコードに関する記事も色々と参考にさせていただいております。
この場を借りて、感謝を申し上げます。

No title

error MSB6006: "cmd.exe" はコード 9009 を伴って終了しました。 ファイル:C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 行:172 列:5 プロジェクト:DGIndex

について

Windows SDK と .NET Framework 4
の最新版を入れると治るよ

参考
http://togarasi.wordpress.com/2011/09/09/wtl-%E3%81%AE%E6%9C%80%E6%96%B0%E7%89%88%E3%81%A7-ribbon/

No title

お世話になります。
no-madと申します。
記事のおかげでエンコードの手間が省けてるようになりました。
感謝です。

ちなみにseyronさんのコメントですが、コマンドラインのパス設定時に失敗しているのだと思います。
「d:\dosbin」以降のパスを編集してしまいパスが通らなくなると同じ現象になります。

No title

この記事のおかげで問題が解決しました

No title

お世話になります。

上記文を参照し (Visual Studio 2012 Express for Windows Desktop)
なんとか失敗しながらやっとできました。

_fix_modは、dgindex158src_fix_mod_20141110 をつかいました。

そこで、DGIndex.lang_jpn.ini が添付されてたのですが、日本語化するには
どのような事をすればいいのでしょうか?

承認待ちコメント

このコメントは管理者の承認待ちです

PCソフト

Amazon
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。