0

QuickTime .mov (H.264) のビデオ ファイルがあります。QuickTime Player 10 で開いて Movie Inspector で確認すると、事前にスケーリングされたサイズが 1440x1080 で、表示サイズが 1920x1080 であることがわかります。

QTKit と次の属性でビデオを開きます: QTMovieOpenAsyncOKAttributeQTMovieIsActiveAttribute、。QTMovieResolveDataRefsAttributeQTMovieDontInteractWithUserAttribute

両方とも1920x1080QTMovieCurrentSizeAttributeを与えます。QTMovieNaturalSizeAttribute

QuickTime 7 でムービーを開くと、GetMovieBox() を使用して、サイズが 1920x1080 で、フレームに 1440x1080 でアクセスできることを確認できます。QTKit を使用して 1440x1080 の解像度情報を取得するにはどうすればよいですか?

QTMovieCurrentSizeAttribute および QTMovieSizeDidChangeNotification の置換で示されているように、アフィン変換を使用してみましたが、ID 変換が行われました。

4

1 に答える 1

0

映画ではなく、実際のビデオトラックのサイズを取得する必要があります。

QTTrack* videoTrack = nil;

for (QTTrack* track in [movie tracks])
{
    if ([track attributeForKey:QTTrackMediaTypeAttribute] == QTMediaTypeVideo)
    {
        videoTrack = track;
        break;
    }
}

NSSize dimensions = [(NSValue*)[videoTrack attributeForKey:QTTrackDimensionsAttribute] sizeValue];

QTMovieNaturalSizeAttributeビデオトラックの寸法とは等しいため、通常はそれを行う必要はありません。ただし、アナモルフィックビデオの場合、ムービーの自然なサイズ属性は、トラックのサイズが実際のビデオフレームのサイズ(小さい方)を表す場合に、ビデオの表示方法を示します。

QTMovieCurrentSizeAttribute奇妙な追加は非推奨であり、データとはまったく関係ありません。

于 2012-05-16T23:59:44.367 に答える