0

AVMutableCompositionSlo-Mo ビデオから作成したものがあります。AVPlayer ではPHVideoRequestOptions.Original、ビデオの Slo-Mo 部分が含まれていない Photos を使用して要求したため、適切な速度で再生されます。ただし、変更可能なコンポジションをエクスポートすると、完全な FPS でエクスポートされるため、FPS が高すぎると Slo-Mo が戻ってきます。

フレームレート 30 のビデオをエクスポートするにはどうすればよいですか? スロー モーションを含まない特定のファイル タイプや、これを行う他の方法はありますか?

私が見つけた2つの(悪い)解決策:

  1. 以下に設定AVAssetExportSessionするAVAssetExportPresetMediumQualityと、フレーム レートが低下しますが、品質も低下します。良くない。
  2. AVAssetExportSession.videoCompositionframeDuration でビデオ コンポジションに設定しますが、それでCMTimeMake(1, 30)ビデオをエクスポートするのに非常に時間がかかり、これも良くありません。時間がかかる原因がわかりません。
4

1 に答える 1

2

Apple DTS によると、現時点で最善の解決策は、私が 2 番目に挙げたものです。詳細は次のとおりです。

        let videoComposition = AVMutableVideoComposition(propertiesOfAsset: mutableComposition)
        videoComposition.frameDuration = CMTimeMake(1, 30) // Changes FPS to 30

        let exportSession = AVAssetExportSession(asset: mutableComposition, presetName: AVAssetExportPresetHighestQuality)

        exportSession?.videoComposition = videoComposition

        exportSession?.outputURL = temporaryURL
        exportSession?.outputFileType = AVFileTypeMPEG4                     

        exportSession?.exportAsynchronouslyWithCompletionHandler({
            // Handling the export
        })

ビデオ構成を使用してエクスポートすると、それを使用しない場合よりもはるかに時間がかかるようですが、Apple DTS によって提案されているように、この状況を改善するためのエンチャント リクエストを提出しました。

于 2015-10-19T08:13:12.677 に答える