すべてのフレームを *.mov-Movie-File にエクスポートしたいので、次のようにします。
GoToBeginningOfMovie(movie);
TimeValue startPoint = 0;
long gnitFrames = 0;
while (startPoint >= 0) {
GetMovieNextInterestingTime(movie, nextTimeStep, 0, &whichMediaType, startPoint, 0, &startPoint, NULL);
gnitFrames++;
}
問題は、これを呼び出したときとはカウントgnitFrames
が異なる (はるかに多い) ことです。
Track track = GetMovieIndTrack(movie, 1);
Media media = GetTrackMedia(track);
OSType mediatype;
MediaHandler mediahandler = GetMediaHandler(media);
GetMediaHandlerDescription(media, &mediatype, nil, nil);
MediaGetName(mediahandler, medianame, 0, nil);
long nsamples = GetMediaSampleCount(media);
nsamples
正しいフレーム数を教えてくれます。では、私の質問: ムービーのすべてのフレームに 1 回だけアクセスするにはどうすればよいでしょうか? ( を呼び出した後でフレームをエクスポートするとGetNextInterestingTime
、フレームが複数回、時には 25 回もエクスポートされます)
私のオペレーティング システムは Windows XP です。