FC2ブログ
timamuの部屋
ソフトウェアや映画やその他興味のあることを書いていきます。
201810<<123456789101112131415161718192021222324252627282930>>201812
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
PSP変換君FE 開発日記(6/2)~PSP変換君FEv1.16公開
本日Vectorにアップされています。


○Ver 1.16 2009年 5月26日

【機能追加】
・ffmpeg変換オプション設定画面で、解像度の選択肢として「自動選択」を追加。
「自動選択」を選択した場合、解像度とフレームレートを元動画の情報を元に
自動で選択します。
・動画ファイル抽出で、進行状況を表示するダイアログに「中止」ボタンを追加。

【仕様変更】
・初回起動時に追加されている変換オプションに、解像度自動のオプションを追加。
また、初回起動時のデフォルト変換オプションを解像度自動のオプションに変更。
・ログファイルを200KB単位にローテートするように変更し、古いログは消すように
変更。

【問題対処】
・ffmpeg変換オプション設定画面(高度な設定)で、「インタレース解除する」をチェ
ックしていて且つ、「常に解除する」を選択している場合、次に画面を開くとチェ
ックが解除されてしまう問題の対処。
・初回起動時に、PSP側ファイル一覧の表示を切り替えない状態で使用すると、転送
ファイル選択のチェックボックスが表示されない場合がある問題の対処。
・動画ファイル抽出で、動画ファイルでないURLまで抽出してしまう問題の改善。


本ブログで予告していた解像度の「自動選択」が今回の主なポイントです。
動画ダウンロード機能も使っている方にはかなり便利だと思います。
必要な方はどうぞ・・・
スポンサーサイト
コメント
この記事へのコメント
あの、その、質問というか要望なんですが、動画変換設定を設定する際に
携帯動画変換君の方で使っているTranscoding.ini(内の変換設定)をFEの方にインポートする様な機能は実装出来ないでしょうか

変換君自体の方でかなり多数の設定を作って弄っていますし、また作り直すのもちょっと馬鹿馬鹿しい話なもので
2009/06/24(水) 21:47:12 | URL | 名無し #cLXfrEeo[ 編集]
こんにちは。
PSP変換君FEのサムネ・タイトル変更機能が便利で使わせてもらっています。

現在は自分で用意した最近の ffmpeg (rev19000代とか) を指定するとバージョンチェックで引っかかってしまうのですが、
利用する ffmpeg を直接指定した場合にはこのチェックをしないようにすることはできないでしょうか。
もしくは、ffmpeg のビルド時に何かしらの変更 (例えば、バージョン番号を書き換えるとか) で
このバージョンチェックを通過することはできますでしょうか。

今のところ変換作業は別でやっているのですが、自分で用意した ffmpeg と設定が使えれば、
PSP変換君FEに統一しようと思っているのでぜひご検討をお願いします。
2009/06/28(日) 16:54:59 | URL | golgol #mQop/nM.[ 編集]
Re: タイトルなし
> あの、その、質問というか要望なんですが、動画変換設定を設定する際に
> 携帯動画変換君の方で使っているTranscoding.ini(内の変換設定)をFEの方にインポートする様な機能は実装出来ないでしょうか

元々はそういうことも考えて携帯動画変換君とオプションやマクロもあわせて作っているので、まったく無理な話ではないのですが、自分でいじっている方の多くが、ffmpegだけでなく、他のツールも合わせてTranscoding.ini内で書いていること、ffmpegのバージョンによってオプションがかなり異なることがあって、なかなかうまくインポートできない・・・のが原因です。
(ちなみにエクスポートだったらものすごく簡単ですが・・・)

という経緯で、インポートしたい方はデバック用に作った上級者向けのffmpegオプション設定を使ってね・・・というのがとりあえずのスタンスです。
制限事項付き(ffmpegのバージョンを絞ったり他他・・・)のインポートは考えて見ます。
2009/06/28(日) 22:47:49 | URL | timamu #-[ 編集]
Re: タイトルなし
> 現在は自分で用意した最近の ffmpeg (rev19000代とか) を指定するとバージョンチェックで引っかかってしまうのですが、
> 利用する ffmpeg を直接指定した場合にはこのチェックをしないようにすることはできないでしょうか。
> もしくは、ffmpeg のビルド時に何かしらの変更 (例えば、バージョン番号を書き換えるとか) で
> このバージョンチェックを通過することはできますでしょうか。

バージョンチェックは今のところ通過する方法がないです。。。
ご存知のとおり、ffmpegはバージョンによってオプションの互換性が極めて低いのがチェックを入れている原因です。

ただ、上級者向けffmpeg設定画面の場合、ユーザの責任でオプションを設定するわけですし、あちらの方で個別設定で指定するffmpegにかけない・・・というのはありかもしれません。
が、バージョンによって進捗状況が正しく取れない可能性もあるので、外してもうまくいかないかもしれませんね。。。
う~ん。悩みどころ。。。
2009/06/28(日) 22:51:45 | URL | timamu #.bZiV.3s[ 編集]
Re: タイトルなし
golgolさん、一つご質問を見逃してました。

> もしくは、ffmpeg のビルド時に何かしらの変更 (例えば、バージョン番号を書き換えるとか) で
> このバージョンチェックを通過することはできますでしょうか。

これはできそうですね。
ffmpeg -version
の実行結果を見ています。
で、"ffmpeg version CVS,"があったら、変換君付属のffmpegと判断し、
"FFmpeg version SVN-"があったら、本家と判断。
更に、"FFmpeg version SVN-r(\d+)"でバージョンを取り出し、
9260より小さいかどうかでチェックしています。。。。

こんなんで大丈夫でしょうか??
これでスルーできるのであればよいのですが。
2009/06/28(日) 23:00:15 | URL | timamu #.bZiV.3s[ 編集]
Re: バージョン書き換えで可能でした
> 一応これで使えるようになったのですが、できれば最初のコメントで書きましたように、
> ffmpegを個別指定した場合はこのチェックを外していただけたらと思います。

先日の大改造でバージョンチェック漏れが発生しないような構造に変えてしまったので、少々
てこずりそうですが、次版でなんとかしたいと思います。

> このコメントの URL 欄に記載したところに、自分が PSP 向け動画作成に使う目的でいろいろ変更を
> 追加してみた ffmpeg をおいてみたので、もしよろしければお試しください。

いろいろ情報ありがとうございます。
ありがたく頂戴しました。いろいろ実験してみます。

> 個人的に、ファイル名の文字に制限があったりして VIDEO フォルダだと不満な点があるので、
> PSP 形式タイトルを編集できる変換君 FE は重宝しています。これからも応援していますので開発がんばってください。

MPROOT配下のファンの方、いらっしゃるんですねぇ。うれしいですね。
あんなの不要だ!!とおっしゃる方が多いんですよ。

これからもいろいろ情報いただけると幸いです。
でわ。
2009/06/30(火) 02:07:12 | URL | timamu #.bZiV.3s[ 編集]
Re: タイトルなし
> ・PAR の値を 10:11 にしたい
> ⇒ uuid の最後の4バイトを 0x000A000B にする

へ~uuid atom内の設定でPARが指定できるんですね!
一般的にPARの位置としては、moov.trak.mdia.minf.stbl.stsd内の"avcC"で指定する・・・
という情報があったんですが、具体的な位置や値までわからかったんですけど、
uuidの最後の4バイトですかぁ・・・縦横を騙すときだけに使うのかと思ってました。。。
情報ありがとうございます。

ついでに知ってたら教えてほしいのですが・・・
チャプター情報ってどこの位置に格納されるんでしょうか??
LRキーでチャプター移動できますが、どのatomのどこにどのような情報で・・・というのがわからなくて。
最新ffmpegのソース見てわかりますかね?
HandBrakeでチャプターが打てるんで、チャプターつき動画を作ってバイナリ解析するしかないかなぁ・・・とは思っていたのですが・・・
2009/07/02(木) 23:59:57 | URL | timamu #.bZiV.3s[ 編集]
Re: タイトルなし
追記です・・・

> 基本的には以下のページを参考にしたのですが、
> ttp://okayama.cool.ne.jp/dvd2cd/atom/psp_uuid.html
>
> 上記のページで書いてない部分とかを一部補足してみました。

ついでにもしご存知ならば・・・
PSP形式の場合は、uuid内にいろんな情報がまとまっていますが、一般MP4の場合、
moov.trak.mdia.minf.stbl.stsd
内に多くの情報があるように思います。
golgolさんが書いてくださったURLにも上記atomの情報があるのですが、もうちょっと情報があったらなぁ。。。と思うところが多いです。
是非上記のatomも解析いただけるとうれしいです。

あとついでに・・・
PSP変換君FEでは、uuidではなく、moov.trak.mdia.minf.stbl.stsdからプロファイル@レベルを読んでます。
以下のロジック。

①moov.trak.mdia.minf.stbl.stsdの先頭から0x14の位置に"avc1"とあること
0x10の位置に"avc1"のatom

②moov.trak.mdia.minf.stbl.stsdの先頭から0x6Aの位置に"avcC"とあること

③moov.trak.mdia.minf.stbl.stsdの先頭から0x6Fの位置の1byteがプロファイル
mainプロファイルなら、"0x4D"、baselineは"0x42"

④moov.trak.mdia.minf.stbl.stsdの先頭から0x71の位置の1byteがレベル
デフォルトだと、"0x28(40)"になっている
2009/07/03(金) 00:12:58 | URL | timamu #.bZiV.3s[ 編集]
こんにちは。

PAR の件ですが、MP_ROOT においた場合は uuid の解像度と PAR から 4:3 か 16:9 かを判断して、
avcC の方は見ないようです。で、uuid が正しくなければ非対応形式として弾かれます。
VIDEO においた場合は、PSP 形式になっていれば uuid の方が優先されますが、PSP 形式でない場合は
avcC の方を見に行って、こちらでプロファイル・レベル・解像度・PARを判定するようです。
映像エンコード時に設定した PAR の情報は avcC にコピーされた H.264 の SPS -> vui に書き込まれていますが、
これを取り出すには H.264 のデコーダが行っているのと同じ処理 (頭からビット単位で読んで解析) を
しないといけないので、単純に何バイト目というわけにはいかないと思います (自分はこの時点で諦めましたw)。
PSP 形式じゃなくなってもいいなら mp4box -par 1=10:11 hogehoge.mp4 とかで書き換えられます。


> チャプター情報ってどこの位置に格納されるんでしょうか??
> LRキーでチャプター移動できますが、どのatomのどこにどのような情報で・・・というのがわからなくて。
> 最新ffmpegのソース見てわかりますかね?
> HandBrakeでチャプターが打てるんで、チャプターつき動画を作ってバイナリ解析するしかないかなぁ・・・とは思っていたのですが・・・

ffmpeg は mp4 のチャプター埋め込みには対応していないと思います (movenc.c にチャプターを扱うようなデータ構造が見当たらないので)。
一応調べた範囲で記載しますと、GPAC 形式のチャプター (mp4box で mp4box -chap Chapter.txt とかでつけられるタイプ) は、
moov.udta.chpl という atom を使ってます。細かい差はあるのかもしれませんが Nero 形式も大筋では同じっぽいです。
QuickTime 形式 (HandBrake はこっちです) の方は mp4v2 ライブラリ (ttp://code.google.com/p/mp4v2/) に付属している
mp4chaps というのでつけられますが、テキストトラックを追加して映像トラックの moov.trak.tref.chap でそのトラックを
参照してチャプター情報として使っているようです。

バイナリ解析には、上記の mp4v2 に付属している mp4file というユーティリティが便利だと思います。
mp4file.exe --verbose=3 --debug=4 --dump hogehoge.mp4 等でファイルの中身をフルダンプ可能です。

一応、試しに (普通のPSP形式でない) mp4 動画に上記各形式のチャプターをつけて VIDEO フォルダに放り込んでみましたが、
単純にこれだけではチャプタージャンプは無理なようです。PSP でチャプタージャンプ可能な動画について検索すると、
UMD-VIDEO か Sony のレコーダで PSP 向けに出力した動画なら可能らしいですが (↓のコメントの中)。
ttp://rss.kakaku.com/bbs/20504010145/BBSTabNo=7/CategoryCD=2050/ItemCD=205040/MakerCD=76/Page=2/ViewLimit=0/ClassCD=6/SortRule=1/

PC でチャプタージャンプ可能な MP4 動画を作る方法は検索してもぜんぜん見つからないですよね。
これと字幕 (ソフトサブ) 切り替えについては自分も以前から方法を探してるのですが良く分からないままです。

最後にですが、

> PSP形式の場合は、uuid内にいろんな情報がまとまっていますが、一般MP4の場合、
> moov.trak.mdia.minf.stbl.stsd
> 内に多くの情報があるように思います。

については Apple の文書と ISO/IEC 14496-12 に書いてある内容が一部参考になるかもしれないです。
ttp://developer.apple.com/documentation/QuickTime/QTFF/qtff.pdf
ttp://standards.iso.org/ittf/PubliclyAvailableStandards/index.html (ここの 14496-12)

以上、ご参考までに。
2009/07/03(金) 17:32:50 | URL | golgol #mQop/nM.[ 編集]
Re: タイトルなし
すごい情報量ですね!
どこかWeb上で公開していただけると私だけでなく、多くの方々の役に立ちそうですが・・・

チャプターは無理なんですねぇ。なんとかバイナリでデータを書き込めば行けるのであれば対応したいと思っていたのですが。

いただいたいろんな情報を元に、自分でも地道に・・・いろいろ調べてみます。
2009/07/06(月) 00:05:28 | URL | timamu #.bZiV.3s[ 編集]
こんにちは!お初です。よろしくです。
PSP動画変換君FE、ありがたく使わせて頂いております。

早速なんですが・・・

エラーの対処法とかってやってませんか?
ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押して色々と設定した後OKを押すとエラーが出るんです。
なので設定したくてもできないのが現状です。
変換はできるんですけど、設定はしたいのでw
環境はXP sp3、FrameWorkは3.5, 2.0ともにインストール済みです、あとAviSynth_255もインストールしてあります。
ffmpegはrev,9133を使用してます。
どうしたら良いんでしょうか?
対処法がすでに書かれているのなら、本当に申し訳ないです><
エラーログにはこう書かれています:
30/7/2009 22:28:09 [予期せぬエラー] : 値をゼロにすることはできません。
パラメータ名:文字列
---------------------------------------
em System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
em System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
em System.Double.Parse(String s, NumberStyles style, NumberFormatInfo info)
em PSPffmpegFE.FfmpegOptionSettingForm.ffmpegOptOKButton_Click(Object sender, EventArgs e)
em System.Windows.Forms.Control.OnClick(EventArgs e)
em System.Windows.Forms.Button.OnClick(EventArgs e)
em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
em System.Windows.Forms.Control.WndProc(Message& m)
em System.Windows.Forms.ButtonBase.WndProc(Message& m)
em System.Windows.Forms.Button.WndProc(Message& m)
em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
長文失礼。
2009/07/30(木) 23:24:12 | URL | hunter #mQop/nM.[ 編集]
Re: タイトルなし
> エラーの対処法とかってやってませんか?
> ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押して色々と設定した後OKを押すとエラーが出るんです。

エラーメッセージは全文ですか?
エラーメッセージからわかる範囲では、フレームレートの設定あたりだと思うんですけど、いろいろやってみたんですが、再現できません。

エラーメッセージ全文とどういう内容の設定をしたかを教えてくれませんか?
2009/07/30(木) 23:57:53 | URL | timamu #.bZiV.3s[ 編集]
設定はすべてデフォルトです。
ダウンロードして解答、他のフォルダに入れて起動。
そのまま「ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押して色々と設定した後OKを押すとエラーが出るんです。」という感じです。
きっと自分のOSのシステムがいかれてると思いますw
全文ではないですが、他のは全部同じなんで(日付だけ違う)。
作者様が再現できないのなら、このまま使用します。
すいません手間をおかけして。
ただ、また同じ症状の方が出れば参考になると嬉しいです^^(対処してないんですけどwまぁw参考までにということで)
ただ再現か対策とかできれば記事とかにして頂けないでしょうか?
迅速な対応ありがとうございます!
2009/07/31(金) 00:52:38 | URL | hunter #-[ 編集]
Re: タイトルなし
> そのまま「ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押して色々と設定した後OKを押すとエラーが出るんです。」という感じです。

OKボタンを押した際の処理のソースコードを眺めてるんですが、エラーメッセージからすると、
フレームレートの部分の選択値を読もうとするんだけど、そこの文字列を数値にできない・・・
というように見えます。

「色々と設定」というところで、フレームレートの設定部分に何か悪影響を与えるようなバグが潜んで
いるのかもしれないです。。。
どんな操作をしても同じなんですかね・・・
なぜ再現できないんだろう・・・

> きっと自分のOSのシステムがいかれてると思いますw

そうかな。。。なんかどっかバグな気がします。。。

> 全文ではないですが、他のは全部同じなんで(日付だけ違う)。
> 作者様が再現できないのなら、このまま使用します。
> すいません手間をおかけして。
> ただ、また同じ症状の方が出れば参考になると嬉しいです^^(対処してないんですけどwまぁw参考までにということで)
> ただ再現か対策とかできれば記事とかにして頂けないでしょうか?

了解しました。
もし再現できる方がいらっしゃったら、コメント待ってます。→皆さん

私の方でも引き続き、いろいろやってみます。
何かわかったら記事にします。
2009/07/31(金) 01:02:22 | URL | timamu #.bZiV.3s[ 編集]
ごめんなさい><
書き忘れました。
設定などしなくても、…設定リストのAVC480x270/29.92fps...→変更を押してOKを押すとエラーになるんです。

ついでに何度もインストールし直しましたが結果はNGです。
また何かあれば報告します。

PS:関係してるかは僕にはわかりませんが、僕のレジストリは結構イジラれてます。高速化の設定などなど。
2009/07/31(金) 01:52:04 | URL | hunter #-[ 編集]
Re: タイトルなし
> 設定などしなくても、…設定リストのAVC480x270/29.92fps...→変更を押してOKを押すとエラーになるんです。

ということは環境の可能性大ですね。

> また何かあれば報告します。

お願いします。

> PS:関係してるかは僕にはわかりませんが、僕のレジストリは結構イジラれてます。高速化の設定などなど。

高速化関連のレジストリ変更だと可能性があるかもしれませんね。
GUI関係の設定とか。
窓の手?う~ん。。。そうなると調べるのは難しいですね。。。
私もいくつかいじったりはしているので、いろいろ調べてみます。
2009/07/31(金) 02:04:39 | URL | timamu #.bZiV.3s[ 編集]
レジストリ高速化の設定プログラムはConfortable PCを使いました。
けど大半は手動で行ったので^^;
2009/07/31(金) 02:07:46 | URL | hunter #mQop/nM.[ 編集]
問題を解決できました!
すごくつまらない事でしたw
「ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押す→フレームレートの部分が空白になってるとあのエラーが出ます。なのでフレームレートのところに値を入れれば問題解決です。
お騒がせしてすいませんでしたT-T
2009/08/05(水) 06:12:43 | URL | hunter #-[ 編集]
Re: タイトルなし
> 「ツール→設定→動画変換設定→設定リストのAVC480x270/29.92fps...→変更を押す→フレームレートの部分が空白になってるとあのエラーが出ます。なのでフレームレートのところに値を入れれば問題解決です。

空白になること自体が問題なので・・・
基本的に空白になることはないのですが、設定ファイル(PSPffmpegFE.xxxx.config)のフレームレートを、29.97, 23.98, 14.985以外の値にエディタで直接書き換えた場合には空白になります。
(これ自体は問題なんで、次の版で穴をふさぎます。)
あとはhunterさんが指摘されている、レジストリ書き換えの影響ももしかしたらあるのかもしれませんが、可能性は低いかな・・・

設定ファイルを手で書き換えたりされました??
2009/08/06(木) 01:12:15 | URL | timamu #.bZiV.3s[ 編集]
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2005 Powered By FC2ブログ allrights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。