« iPod nano 1GBモデル | メイン | テレビ王国の新サービス »

2006年2月 9日

PSPで動画再生 その3

カテゴリー: DTV

2/6の日記の続きです。タイトル文字化けの件は、友人がこれを修正するプログラムをサクっと作ってくれたことで、あっさり解決しました(^^;) これで携帯動画変換ちゃんで問題なくライブラリが作れます。

PSPで再生できるフォーマットについても、新たに分かったことがあります。音声はサンプリング周波数が24KHzでなければならないと思っていましたが(そう書いてあるサイトが多い)試したところ48KHzでも再生できました。ただ、圧縮レートによるようです。64kbpsと96kbpsで試したのですが、前者はOKで後者はだめでした。それ以上は追求していませんが、映像のレートとの兼ね合いもあるんですかね。昨年1/17の日記で書いた私の調査(?)によるとAAC 2ch.なら64kbpsでギリギリ満足いく音質です。ビデオではオーディオのみの場合ほど高音質を求めない(24KHzというのは論外ですが)ので、この16bit/48KHz/64kbpsを私の標準としたいと思います。

ところで、こういう実験をやっているとMacからPSPにファイルを転送するのが凄く面倒ですね。Macには日本語のファイル名で保存しておきたいけど、PSP側はMAQ00001.MP4など決められた名前じゃないといけません。重複や並び順なども考慮しながら手作業でリネーム(リナンバー)していると気が狂いそうです(笑) 何かツールがあるだろうと思って探したのですが、ファイル転送だけを行うシンプルなものが見つけられません。仕方ないので思いきって自分で作ってしまいました。とりあえず自分用なので汎用性は全くありませんが(設定を変えるのにも再コンパイルが必要(笑))ドラッグ&ドロップ1発でまとめてコピー&リネームができるようになりました。他にもっと良いものがなければ、ちゃんと作り込んでフリーウェアとして公開してもいいかなと思っています。


関連リンク
PSPで動画再生 その1 (2006年02月03日)
PSPで動画再生 その2 (2006年02月06日)
・PSPで動画再生 その3 (2006年02月09日)
PSPで動画再生 その4 (2006年02月13日)
PSPで動画再生 その5 (2006年02月21日)
PSPで動画再生 その6 (2006年03月05日)
PSPで動画再生 その7 (2006年03月06日)
PSPで動画再生 その8 (2006年03月16日)



コメント

前回と同じURLに改訂版を置きました。タイトルの修正・設定・表示ができます。適当に加工して使ってみて下さい。
設定・表示の文字コードはUTF-8。
変換君、変換ちゃん(要はMobileHackerz版ffmpeg)のMP4しか確認してないので他のエンコーダの出力するファイルでちゃんと動くかはわかりませんです。

投稿者 kyaco : 2006年2月13日 03:26

ありがとうございます。GUIは半分くらいできているので、近日中に最低限使えるものをアップできると思います。

ところで、これは前回のバージョンからなのですが、このfixtitleをコマンドラインから実行すると正常なのに、変換ちゃんのスクリプトから実行すると文字化けが修正されないという現象が出ています。いろいろやってみても解決できないのですが、そちらではうまく動いていますか?

スクリプトは見よう見まねで以下のような感じで書いています。(-fは今回のバージョンでつけた) よかったらどういうふうに書いてるか教えていただけませんか?

Command0=・・・エンコード・・・
Command1=・・・サムネイル作成・・・
Command2=""¥cores¥fixtitle" -f ".MP4""

投稿者 浅利 : 2006年2月13日 18:11

すみません。上記はMovableTypeにHTMLタグと誤認されて一部が欠けてしまいました。正しくは以下のとおりです。

Command2=""<%AppPath%>¥cores¥fixtitle" -f "<%OutputFile%>.MP4""

投稿者 浅利 : 2006年2月13日 18:14

ちょっとだけ変換ちゃんをリバースしてみた所、外部コマンドとしてはpathに"\cores\ffmpeg"が含まれていないと実行してくれないみたいなのです。
なので、変換ちゃんと同じpathに fixtitle/cores/ っていうディレクトリを掘ってあげて、そこにfixtitleをffmpegにリネームしたのを放り込みます。
で、AppPathの後ろを、"\fixtitle\cores\ffmpeg"にしてあげます。
これで騙せると思いますです。

投稿者 kyaco : 2006年2月14日 04:21

ありがとうございます。うまくいきました。

それにしてもよく調べましたねぇ。私なら諦めてるところだ(^^;)

投稿者 浅利 : 2006年2月14日 15:49

結構暇人なのかも^^;

変換ちゃんのバージョンアップ時に使えなくなるかもしれないですけどね。

投稿者 kyaco : 2006年2月14日 21:33

そうですね。そのときは私がいま作ってるプログラムで一括修正してください(^^;)

いちおうこんな(↓)GUIにしようかと・・・。

http://www.asari.jp/diary/archives/20060214-01.jpg

PSPをどう検出するかと、MPEG4とAVCをどう判別するかで悩んでます。後者は私には難しいかも(^^;)

投稿者 浅利 : 2006年2月14日 22:48

良さげなUIで期待です!楽しみにしてます!
ちなみに、Terminalからまとめて修正する時は
find mp4folder -name \*.MP4 -exec fixtitle -f {} \;
とかで指定フォルダ以下を一気に変換できますです。

>MPEG4とAVCをどう判別するかで悩んでます。

実はAVCって作った事ないので今度見てみますね。
iPodとPSP両方で使える利点からMP4にしちゃってるんですよね。

投稿者 kyaco : 2006年2月15日 10:19

アイデアとしてはあと、転送する前にPSP側のファイルを全部削除するとか、同名のタイトルがPSPにあったら上書きするとかあるんですけどね。まあ徐々に(^^;)

AVCの判別は今のところ私には予備知識がなさすぎてさっぱりですが、もし簡単そうなならぜひお願いします。

投稿者 浅利 : 2006年2月15日 18:51

AVCの判別が出来るようにしてみました。
本来なら各'trak'ATOMを見るべきなのかもですが、PSP用っていう事で'uuid''PROF'で判断する事にしました。

>fixtitle --VPRF [filename]

とすると、AVCなら'avc1'、MP4なら'mp4v'が表示されるはずです。
詳細はソースを見てみて下さい。

投稿者 kyaco : 2006年2月16日 02:36

ありがとうございます。正常に判別できているようです。手動の設定を残しておくべきかどうか迷いますね(^^;)

あと別件ですが、altShiivaで作られた動画はタイトルの取得、設定ができないようです。何か思い当たることがあるでしょうか? 難しいようなら、altShiivaは文字化けしないのでサポート外でも良いかも。

投稿者 浅利 : 2006年2月16日 17:11

>あと別件ですが、altShiivaで作られた動画はタイトルの取得、設定ができないようです。
週末にでも試してみます。
もしかしたらファイルの末尾にタイトルが無いのかもしれません。
今は末尾じゃないと変更する度にファイルへの大きな変更が入るので無視しているんです。

投稿者 kyaco : 2006年2月16日 18:16

なるほど、MPEGは大きいファイルが多いから末尾にないと処理時間かかりそうですね。

投稿者 浅利 : 2006年2月16日 18:24

予想通りでした。
タイトル長変更にはファイルとほぼ同サイズのデータコピーが発生しますね。

投稿者 kyaco : 2006年2月17日 07:19

ご無沙汰してます、尾野です。お元気ですか?
ここのページでのやり取りは知ってたのですが、忙しくて、やっと3月に入って少し時間ができたので、ぼちぼちと手直しをしようと思ってます。

で、
Command2=""¥cores¥fixtitle" -f ".MP4""
が通らない件ですが、特定のコマンド以外無視するように作ってあったのですが、全部処理するように直そうかと思ってます。

他、何か気が付いた所合ったら教えて下さい。
では。。。

投稿者 Micono : 2006年3月 3日 14:45

どうもご無沙汰してます。変換ちゃん、便利に使わせてもらってます。

> 特定のコマンド以外無視するように

やはりそうだったんですね。Windowsの設定ファイルをそのまま使うというコンセプトなので、そういう制限もしょうがないのかなと思っていました。対応してもらえるなら色々と可能性が広がりそうで嬉しいです。


> 他、何か気が付いた所合ったら教えて下さい。

それではせっかくの機会なので遠慮なく(^^;) 1ユーザーの勝手な要望なので、適当に流してください(笑)

・プログレスバーが実際の進行と合わない
・エンコードの経過時間、または予測終了時間が出ると嬉しい
・エンコード中に中止ができると嬉しい(ボタンはあるけど効きが悪い?)

 これらは外部のプログラムを呼び出している仕組みでは難しいでしょうか。


・タイトルを設定する一覧が小さくて長い名前がつけにくい
・一覧をソートしたら、エンコードもソート順に行って欲しい
・エンコード中にエラーが出たら、それが分かるようにして欲しい
 (中途半端なファイルを削除するとか)

こんなところでしょうか。ご参考までに(^^;)

投稿者 浅利 : 2006年3月 3日 18:12

Miconoさん、お久しぶりです^^

>浅利さん
・プログレスバーが実際の進行と合わない
に関しては、変換ちゃんでは対応できないかもしれません。
進行状況はffmpegの返りを拾っているだけだと思うのと、vob,mpegストリーム内のタイムコードが先頭から最後までbreakせずに入っているとは限らないためです。
ffmpegは変換開始前にストリームのタイムコードをチェックするようなプログラムではないし、チェックにはそれなりの時間がかかりますしね。

投稿者 kyaco : 2006年3月 3日 22:21

やっぱり難しそうですか。それなら経過時間だけでも表示して欲しいですね・・・って、作者を無視して話を進めても(笑)

ちなみに、うちのG5 1.8 GHz DualでAVC 320x240だと、ほぼ実時間と同じくらいのエンコード時間です。だから経過時間が出れば個人的には十分かも(^^;)

投稿者 浅利 : 2006年3月 3日 22:42

なんか久々にみなさんとプログラミングの話できて嬉しいです。
いろいろありがとうございます。とりあえず、以下のように考えています。

・プログレスバーが実際の進行と合わない
いま、QTのAPIでdurationを取得しているので、QTで開けないコーデック
の場合、プログレスバーの値は適当なのです。ffmpegが曲のdurationを
出してくれてるので、それをプログレスバーに適応しようとは思ってます。
ストリームの場合もそう思いますが、あと、2パスエンコーディングとか、
している場合、曲の時間だけでは駄目ってことだよな〜とは思ってます。。。

・エンコードの経過時間、または予測終了時間が出ると嬉しい
はい、自分でイライラしますから、これも対応したいと思ってはいます。

・エンコード中に中止ができると嬉しい(ボタンはあるけど効きが悪い?)
 これらは外部のプログラムを呼び出している仕組みでは難しいでしょうか。
ターミナルからだと「q」で止められるんですよね?試したことがないので
分かりませんが、これもうまく止まるようにしたいとは思っています。

・タイトルを設定する一覧が小さくて長い名前がつけにくい
ですよね。自分もそう思ってます(汗)全体的にウインドウを横に大きくして、
リストボックスの幅を広げて、フォントサイズを大きくすればいいのかな?
って思ってますが、何か良い手段ありますでしょうか?

・一覧をソートしたら、エンコードもソート順に行って欲しい
確認してみます。プログラムミスっぽいですね(汗)

・エンコード中にエラーが出たら、それが分かるようにして欲しい
 (中途半端なファイルを削除するとか)
分かるとは、ビープ音って意味ではなく、メッセージでってこと
でしょうか?ffmpegがどんなエラーメッセージを出すのかよく
調べていないんですよね。いくつかは対応させています、その
エラーに関しては、ファイルも削除するようにしたとは思いますが。。。

あと、浅利さんにメールで書いたんですけど、altShiivaの改良
版だけでなく、HandBrakeの改良版作って欲しいです>Kyacoさん
直接、PSP用のプレビューとPSP用の動画を出せると嬉しいんですよね。

投稿者 Micono : 2006年3月 4日 00:55

> QTで開けないコーデックの場合、プログレスバーの値は適当なのです。

なるほど、そういうことだったんですね。私はほぼ100%、vobファイルからの変換なので・・・。


> リストボックスの幅を広げて、フォントサイズを大きくすればいいのかな?
> って思ってますが、何か良い手段ありますでしょうか?

タブをつけて、右側のコマンドとかは2ページ目にしてはいかがでしょう。または、可能なら一覧の列の幅をドラッグして変えられるようにするだけでも十分かもしれません。


> 分かるとは、ビープ音って意味ではなく、メッセージでってことでしょうか?

無人運転するのでビープだと分かりにくいですね。例えば今はエンコードを開始したファイルは一覧から消えてしまいますが、これを消えないようにして、更に一覧にもう1列追加して、処理待ち、正常終了、エラーとかステータス表示をしてはいかがでしょう。

でも「言うは易く行うは難し」ですよね。あくまで1つのアイデアということで(^^;)

投稿者 浅利 : 2006年3月 4日 01:19

あ、今度やろうと思っているのはaltShiivaの吐き出すMP4のタイトル変更の対応でして、altShiivaのソース自体に手を出すわけではありませんです。
同じく、HandBrake自体にも手を出す予定はないです。あくまで地味〜にfixtitleの変更です^^;

投稿者 kyaco : 2006年3月 4日 01:38

よろしければコメントしてください。

※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。




保存しますか?


「投稿」ボタンを押してから書き込み完了までに多少時間がかかる場合があります。ご了承ください。