0

ムービーの先頭に画像付きのトラックを追加することで変更しているmovファイルがあります(QTMovieの-addImageメソッドを使用)。このようなムービーを (QTMovie の -writeToFile: メソッドを使用して) フラット化すると、最初にこの「透かし」を含む別の .mov ファイルが作成されます。しかし、再生しようとすると、そのようなファイルを再生するには QuickTime 7 をインストールする必要があるというメッセージが表示されます (元の処理されていない mov ファイルは QuickTime Player 7 を必要とせず、QT Player で正常に再生できます) X には Snow Leopard と Lion が付属しています)。

このファイルを QuickTime Player X で再生できるようにすることは可能でしょうか? 私のアプリケーションのユーザーに、この古いバージョンのプレーヤーをインストールする義務を負わせたくありません。さらに、Final Cut Pro 7、Telestream Episode Engine エンコーダー、Autodesk Smoke などの一部のアプリケーションは、イメージ トラックを追加した後、この「ファイル フォーマット」を正しく認識しません。

どうにかして、イメージ トラックではなく、ムービー トラックとしてイメージを追加することは可能でしょうか? 多分古いQT APIを使用していますか?(とにかく、QTKitはまだ生のようです)。

イメージ エンコーダーとして "mpv4" を指定していますが (-addImage メソッドで)、この透かしイメージはムービー トラックではなく、ムービー エンコーダーでエンコードされたイメージ トラックと見なされます。

ありがとうございました!

4

1 に答える 1

1

新しいムービーを作成し、編集を許可するように属性を設定します。

QTMovie* trailerMovie = [QTMovie movie];
[trailerMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];

元の映画の時間範囲を選択し、新しい映画に追加します。

QTTimeRange selectionRange = QTMakeTimeRange(QTMakeTime(...), QTMakeTime(...));
[originalMovie setSelection:selectionRange];
[trailerMovie appendSelectionFromMovie:originalMovie];

画像を追加する:

[trailerMovie addImage:image forDuration:duration withAttributes:nil];

QTMovieFlatten属性を持つファイルにムービーを保存します。

[trailerMovie writeToFile:@"trailer.mov" withAttributes:[NSDictionary dictionaryWithObj:[NSNumber numberWithBool:YES] forKey:QTMovieFlatten]]

このシナリオを試してみてください。どのように進んだか教えてください。

于 2011-10-18T04:09:43.130 に答える