AVFoundation - 비디오의 인코딩(압축) 및 업로드(3) - 업로드 개선

2023. 3. 21. 17:26iOS/이슈

짧은 비디오가 아니라 20분가까이 되는 비디오이다 보니 압축과 업로드에 유저가 불편함을 느낄 정도로 시간이 많이 소요된다. 해서 업로드 부분을 탭바가 책임지도록 변경했다.

 

피드 업로드에서 비디오와 제목/컨텐트 등의 데이터로 피드DTO로 가공하여 탭바-뷰모델로 넘겼다. 이 과정에서 2가지 에러가 발생했다.

하나는 AssetReader 참조 에러

이 과정에서 

ARC에 의해 assetReader가 먼저 Release되는 에러가 발생했다.

cannot copy next sample buffer before adding this output to an instance of AVAssetReader

나머지 하나는 Memory Crash

용량이 큰 비디오에서 메모리 때문에 앱이 튕기는 현상이 발견되었다. 전에도 해당 이슈가 발생하였다.

Observable.zip()으로 프리뷰 비디오 압축 완료와 원본 비디오 압축 완료를 기다린 뒤 AWS 업로드를 처리했는데 용량이 큰 비디오의 경우 발생하였다. 이 이슈를 압축 완료 -> 업로드 완료까지 진행 후 대기하는 것으로 변경하여 해결하였었다. 이번엔 core Data를 이용해 저장 후 나중에 다시 불러오는 방식으로 해결해야겠다. 

 

포스팅 계속 업데이트 예정입니다~

 

에러 검색하다가 좋은 소스 발견했다. 득템한 기분 ㅎ

https://www.jianshu.com/p/32c33300eb10

 

使用AVAssetReader、AVAssetWriter编解码视频

本篇作为 使用AVFoundation处理视频[https://www.jianshu.com/p/ff2672b1a729] 的续篇; 上篇讲到AVAssetExportS...

www.jianshu.com