トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

DVD Flick猫研版のTODO

DVD Flick猫研版のTODO

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

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

  • メニューテンプレートのアップローダを猫研サイトに作成。
    • やればすぐなんだけど手を付けるのが億劫。
    • 作りかけたが、運用上の懸念でストップ。
      • 恐らく著作権を侵害したテンプレートが多数アップロードされてしまう。
      • 侵害の事実の確認、削除の判断基準が難しい。
  • メニューテンプレートのフォント・背景画像をオーバーライド可能にする。
    • 比較的簡単にできるとは思うけどフォントの検索とか面倒。
  • 高速化(解析部)のための調査。
    • ffmpegのstdout/stderrのバッファリングをoffにすればいいはず。
    • ffmpegはcygwinでビルドされているかと思ったらmingwの模様。
    • msvcrtからのインポートテーブルにfprintf等がない。どうやらPRINTF_EXPONENT_DIGITSというのが関係していそうで、C99/POSIXのprintf系の書式指定子をmsvcrtがサポートしていないために、mingwrt側でCライブラリの一部を実装している模様。詳細はmingw-runtime3.15のリリースノート(MLより)にある。
    • 調査結果(一部)
      • msvcrtをProxyDLL方式でフックしてもRtlEnterCriticalSectionで落ちる。
      • どうやらmsvcrtのフックには何か問題がある模様。
      • 前項の参照記事はInjectionに関するもののようだがProxy方式でも問題?
      • 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の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方式なら楽だが制作側は大変だから本家はやってくれないだろう。
    • 原文をキーにハッシュ引く方法もあるが起動が重くなりそう。
  • 高速化(複数同時エンコード)
    • en-fragmentが懸念だが上記のtee改を使用すればある程度緩和可能。
    • 複数の動画を投入しないと意味ない。
    • 管理が難しい。cascadingExecuteがものすごく変わる。
  • 字幕関連
    • mkvから自動抽出とかdvdsub対応とか、ただしできるか不明。
      • dvdsubは、[idx+sub]は取り込めないっぽいので[sub+bmp]に変換する必要がある?
      • vsconv.exeはうまく動作しない場合がある模様。dvdsubはやはり除外か?
      • ffmpegではdvdsubはタイプが表示されるが、それ以外は0x0000等となってしまう模様。

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

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

 完了

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

最終更新時間:2009年10月25日 01時32分43秒