トップ 検索 一覧 ヘルプ RSS ログイン

DVD Flick猫研版のTODOの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!DVD Flick猫研版のTODO

DVD Flick日本語版のTODOメモ。恐らく一生やらないものも含む。''スローガンは面倒''なのでなかなか手を付けない。

!!比較的やる気のするものorやらなきゃなぁと思う(優先度高)もの

*メニューテンプレートのアップローダを猫研サイトに作成。
**やればすぐなんだけど手を付けるのが億劫。
**作りかけたが、運用上の懸念でストップ。
***恐らく著作権を侵害したテンプレートが多数アップロードされてしまう。
***侵害の事実の確認、削除の判断基準が難しい。
*メニューテンプレートのフォント・背景画像をオーバーライド可能にする。
**比較的簡単にできるとは思うけどフォントの検索とか面倒。
*高速化(解析部)のための調査。
**ffmpegのstdout/stderrのバッファリングをoffにすればいいはず。
**cygwinでビルドされているかと思ったらmingwの模様。
**msvcrtからのインポートテーブルにfprintf等がない。
**どうやらPRINTF_EXPONENT_DIGITSというのが関係していそう。
**ffmpegはcygwinでビルドされているかと思ったらmingwの模様。
**msvcrtからのインポートテーブルにfprintf等がない。どうやらPRINTF_EXPONENT_DIGITSというのが関係していそうで、C99/POSIXのprintf系の書式指定子をmsvcrtがサポートしていないために、mingwrt側でCライブラリの一部を実装している模様。詳細は[mingw-runtime3.15のリリースノート(MLより)|http://old.nabble.com/New-Release:-mingw-runtime-3.15-td19364210.html]にある。
**調査結果(一部)
***msvcrtをProxyDLL方式でフックしてもRtlEnterCriticalSectionで落ちる。
***どうやら[msvcrtのフックには何か問題がある|http://www.codeproject.com/KB/system/hooksys.aspx]模様。
***前項の参照記事はInjectionに関するもののようだがProxy方式でも問題?
***msvcrtをフックするのではなくmsvcrtが呼び出すAPIをフックしろとある。
***VCに#pragma comment(linker, "/export:aaa=bbb")なんてものがあるらしい。
***msvcrtをフックするのではなくmsvcrtが呼び出すAPIをフックしろとあるが、バッファリングはmsvcrt内部で行っていると思われるので対処のしようがない。
***VCに#pragma comment(linker, "/export:aaa=bbb")なんて指定方法があるらしい。が、VC6.0では上手く動かない?
***MinGWでもVCでもProxyDLLを作るべく頑張ったけど、これはちょっと無理かな…?
*メニューのレンダリングの質改善。
**本来優先度は低い(本家で対応して欲しい)のだが多少調査してしまったため。
**基本的にはDELETESCANS(最近傍点法)をHALFTONEで処理するように持って行く。
**透過と混合色の問題でDELETESCANSが使用されている模様。
**背景と事前に合成する方法で透過を不使用にすればOKではないか?
**ただし、spumuxとDVDの仕様がフルカラーを許容することが条件。

!!将来的には手を付けたい(優先度中)もの

*自動?avisynth経由読み込み。
**諦め気味、後からの変更や保存を考えるとavsをユーザに認識させないのは難しい。
**別ツールとして実装は考慮。
**ffmpegの対応はvfapi経由のようなのでavisynthは別途要インストになる。
**ffmpegのavs対応は直ではなくvfapi経由のようなのでavisynthは別途要インストになる。
*aften対応の拡充。
**aac/dtsの5.1chのみにMPEGオーダーでac3にはAC-3オーダーで自動適用とか。
**強制的に使用できないのも困る、というケースはあるか?
**ffmpegにchannel_layoutとかできてるけど順序は制御できない?
***新しいffmpegではac3のエンコーダ側が正しく対応するようになってたりしないか?
*開発のベースをsourceforgeとかに移動。
**なんかいじれる人出てきたっぽいのでアリかも。
**なんかいじれる人が出てきたっぽいのでアリかも。
*ffmpegのオプション。
**幾つか納得の行かないオプションがあるので考慮する。
***minrate/maxrateをどう設定しているか調査。
***bufsize(VBV)が不正っぽいので調査。今更記載してあるところあるかな…。
**その他自由に追加できるようにする、とか。
*高速化(結合処理を省略)
**stdinをファイルにappendするツール(teeみたいだけどちょっと違う)作成。
**ダブルバッファ+非同期I/Oで実装してみたい。上手く行かなければスレッド使用。
**これをすればunti-fragmentになるしffmpegを非同期I/O化できる。
**pipeとmemcpyのオーバーヘッドがどの程度のものかが懸念。
**cascadingExecuteの変更で既存を大きく変えず上手く対応できないか?

!!やる気の薄い(優先度低)もの

*インターレースの自動判定(MediaInfo使用)
**ffmpegのswscalerはinterlaced resizeではないのであまり有用ではない。
*アスペクト比を確認するにはプレビューが小さすぎる。
**確かにそうだとは思うけどどうやって表示すべきか…。
*LPCM/AAC/mp2/dtsのストリームコピー。
**mplexではAAC以外は問題なさそう。("MPEG layer I/II/III, DTS, AC3 and LPCM")
**delaycutも"ac3, dts, mpa and wav"と言っているがmpaがAACを含むかは謎。
**LPCMやdtsの結合(concat)に専用ソフトが必要かも。
**AAC/mp2はAC3と同様に単純にcatしてもOKと思うけど。
*手動チャプタ設定
**好きなところに打てる、ただしプレビュー(映像を確認しながら)はやるつもりない。
*MP4のチャプタを調べて対応できるならする。

!!やる気の薄さがオゾン層くらい(着手するかも微妙)のもの

*日本語化をより洗練させる。
**フォントの一括設定とか→面倒
**リストボックスとかリソースもの→面倒
**ImgBurn方式なら楽だが制作側は大変だから本家はやってくれないだろう。
**原文をキーにハッシュ引く方法もあるが起動が重くなりそう。
*高速化(複数同時エンコード)
**fragmentが懸念だが上記のtee改を使用すればある程度緩和可能。
**en-fragmentが懸念だが上記のtee改を使用すればある程度緩和可能。
**複数の動画を投入しないと意味ない。
**管理が難しい。cascadingExecuteがものすごく変わる。
*字幕関連
**mkvから自動抽出とかdvdsub対応とか、ただしできるか不明。
***dvdsubは、[idx+sub]は取り込めないっぽいので[sub+bmp]に変換する必要がある?
***vsconv.exeはうまく動作しない場合がある模様。dvdsubはやはり除外か?
***ffmpegではdvdsubはタイプが表示されるが、それ以外は0x0000等となってしまう模様。

!!やらないことが決定してしまったもの

*スレッド数のデフォルトをコア数x1.5にしてみる。
**C2Qでテストしてもらったけど意味無いみたい。
**どちらかというと根本的な改善としてffmpeg-mtに期待した方がいいんじゃないだろうか。
*読み込みにスレッド使用とか。
**そんな設定がない。あった気がしたけどx264と勘違いした?
**そんな設定がない。あった気がしたけどx264(--thread-input)と勘違いした?

!!完了

*音声のディレイ(遅延)を手動で設定できるようにする。
**1.3.0.7では-160ms固定になってしまっている。この値の根拠は不明。
**簡易的にユーザが変更できるようにした。
*音声のディレイ検出
**MediaInfoのCLI版を同梱。
**音声のディレイは解釈が色々あるようなので注意。
**ひとまず解釈は無視してストレートに実装。以降はbugfixということで。
*ffmpegのオプション。
**Bを指定可能(音声delayとclosed-gopは取り敢えず無視)に。
**本家で14になっているNTSCのGOP長を一般的な15に。