반응형
iOS 에서 카메라 플러그인 사용하여 비디오 녹화 시 간헐적으로 첫 프레임이 검은색으로 노출되는 경우가 있다.
블랙 프레임의 원인은 무엇입니까?
비디오 버퍼보다 오디오 버퍼가 먼저 도착한 경우 비디오 부분이 비어 있거나 검은색 초기 프레임을 얻게 된다.
해결책은 무엇입니까?
비디오 녹화 시 오디오 설정을 해제하면 해결되지만 그럴 수 없으므로 0.05초의 딜레이를 주어 첫 프레임이 버퍼에 저장되지 않도록 한다.
CFRetain(sampleBuffer);
CMTime currentSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
if (_videoWriter.status != AVAssetWriterStatusWriting) {
[_videoWriter startWriting];
[_videoWriter startSessionAtSourceTime:currentSampleTime];
}
CFRetain(sampleBuffer);
CMTime currentSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
CMTime startingTimeDelay = CMTimeMakeWithSeconds(0.05, 1000000000);
CMTime startingTimeToUse = CMTimeAdd(currentSampleTime, startingTimeDelay);
if (_videoWriter.status != AVAssetWriterStatusWriting) {
[_videoWriter startWriting];
[_videoWriter startSessionAtSourceTime:startingTimeToUse];
}
카메라 플러그인 코드를 위에서 아래로 수정 필요!
다음과 같이 AVAssetWriter.startSession 을 호출할 때 시작 시간에 0.05초를 추가하여 블랙 프레임 생기는 현상을 제거 하였다.
https://stackoverflow.com/questions/44135223/record-video-with-avassetwriter-first-frames-are-black
https://github.com/flutter/flutter/issues/57831
반응형
'# 02 > Flutter' 카테고리의 다른 글
[Flutter] 3.7.0 새로운 기능! (0) | 2023.01.29 |
---|---|
[Flutter] iOS UiKitView 구현 시 실선 노출 !! (0) | 2022.12.22 |
[Flutter] Platform View!! Native View 를 띄워 보아요! (0) | 2022.11.12 |
[Flutter] WillPopScope 사용 시 iOS swipe 안돼요! (0) | 2022.11.10 |
[Flutter] Image File Size ????? (1) | 2022.11.10 |