Javaでエンコードするソフトを作る(4)

結論から言うと無理だった。


Quicktime for Javaを使って動画や画像を読み込んで画像に落とし込むテストをしたかったのだが、読み込み時のヘッダ部分は読み込めてるらしいが映像データ本体の読み込みが全く上手くいかず、真っ黒な画像が出来上がってしまう。QuicktimeのAPIでMovieとしてそのまま動画を再生は出来るのだが、映像を操作するために別クラスに移した途端に真っ黒になる。何かが間違っているのは確実なのだがそれが何かが全く分からない状態。

取り合えず読み込みは以下のように行ってみた。

画像について
 QTFile file = new QTFile("image.jpg");
 GraphicsImporter importer = new GraphicsImporter(StdQTConstants.kQTFileTypeJPEG);
 importer.setDataFile(file);
これをGraphicsExportorを使って出力しようとしたが上手くいかず。

動画について
 QTFile movieFile = QTFile.standardGetFilePreview(QTFile.kStandardQTFileTypes);
 OpenMovieFile openMovieFile = OpenMovieFile.asRead(movieFile);
 Movie movie = Movie.fromFile(openMovieFile);
これはMovie.start()によって動画として出力出来るのだが、1フレームを取り出すことが上手くいかなかった。

そもそもそれぞれのクラスが何の役割をしているのかについての把握が不十分なままやっているため上手くいくはずもない訳だが。Movieからの切り出しはPixMapなりQDRectなりが担当しているはずなのだが、それにしても不可解である。ついでにJavadocももっとキチンとして欲しい所だ。

という訳でやはり動画の読み込み部分から作らないと駄目だということが分かった。今からTSとMP4について勉強する。

0 コメント:

コメントを投稿