2017-02-22 15 views
2

저는 scaleTimeRange:toDuration:을 사용하여 원래 비디오 속도의 10 배까지 빠른 모션 효과를냅니다. 그러나 AVPlayer를 통해 10 배 재생할 때 비디오가 더듬 거리기 시작합니다.AVMutableComposition의 성능 문제 - scaleTimeRange

나는 또한 OSX의 QuickTime에서 동일한 구성이 부드럽게 재생되는 것으로 나타났습니다.

다른 이유는 하드웨어 제한이기 때문에 이유는 있지만 주위에 방법이 있는지 알고 싶기 때문에 빠른 동작 효과가 전체 비디오 길이에 걸쳐 부드럽게 발생합니다.

비디오 사양

  • 형식 : H.264, 1280x544
  • FPS : 25
  • 데이터 크기 : 26메가바이트
  • 데이터 속도 : 1.17 메가 비트/s

답변

0

scaleTimeRange:toDuration을 사용하여 10 배속으로 비디오를 재생하면 데이터 속도에 10을 곱하면 10 메가 비트/s까지 올라갈 수 있지만 OSS 장비에서는 처리 할 수없는 느낌이 들었습니다.

즉, 초당 300 프레임으로 재생해야하는 동영상을 만들면 AVPlayer이 너무 힘들어집니다. 나는 당신의 other question에 대해 알고하지 않은 경우

, 나는 솔루션을 수출하는 것을 말한 것이다 당신의 AVComposition 초당 30 프레임을 처리하고 재생하려면 높은 FPS 비디오 초래한다 AVAssetExportSession, 아래로 쉽게로 샘플링되고를 사용하여 그게 AVPlayer.

AVAssetExportSession 경우 소스 비디오에서 프레임을 읽는 AVAssetReader을 사용하고 AVAssetWriter를 사용하여 출력 파일에 대한 모든 열 번째 프레임을 작성함으로써 속도 향상 효과를 직접 적용하려고 할 수 작동하지 않습니다 (올바른 설정하는 것을 잊지 마세요 프레젠테이션 타임 스탬프).