마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

전면으로 동영상 녹화했는데 화면이 깨져요..

0 추천

if(recorder == null){
                                    recorder = new MediaRecorder();
                                    
                                     Camera camera = Camera.open(1);
                                     camera.setDisplayOrientation(90);
                                     camera.unlock();
                                     
                                     recorder.setCamera( camera );
                                }

                                
                    
                                //녹화 옵션 설정
                                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                                recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
                                //출력 포맷 설정.
                                recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
                                //인코딩 방식 설정.
                                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
                                
                                recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

카메라 오픈에 대해서 많이 물었는데.. 우선 전면 카메라는 오픈시켜서 동영상찍는데까지는 해결했습니다..

그런데 이제 오픈했으면 다시 닫아줘야되서..

    if(recorder == null)
                            return;
                        //녹화를 중지하고 자원 회수
                        recorder.stop();
                        recorder.reset();
                        recorder.release();
                        recorder = null;
                            
                               camera.stopPreview();
                               camera.release();
                               camera=null;

중지 버튼을 누르면 이런식으로 레코더랑 카메라가 스탑시키게 했습니다. 기존에 후면카메라할땐 잘돌아갔는데.. 전방카메라 오픈시키고, 안되네요...그리고 전방카메라로 녹화시키면.. 화면이 다깨져요깨지는동영상 이렇게 다깨집니다.. ㅠㅠ조언좀 주세용...

 

익명사용자 님이 2016년 4월 21일 질문

1개의 답변

0 추천

영상으로 보아서는 대각선으로 줄무니가 나오는게   stride 가 어긋난 현상으로 보입니다.

(왠지 삼성 exynos 칩셋을 사용한 폰에서 돌린듯 한데.

 맞다면 퀄컴 칩셋을 쓰는 다른 단말로도 테스트 해 보세요.

단말에 따라 정상적으로 나올 수도 있습니다. )

 

첨부한 그림과 같이 연산속도 등의 향상을 위해 

2의 배수(64,32,128...)로 되게 패딩을 넣어두고, 그릴 때 패딩 부분을 자르는데,

인코딩한데서, 패딩 부분까지 데이터라 생각하고 읽어 들여서 어긋난듯 합니다.

가로 사이즈 파라메터를 잘 조정 해 보셔야 할 듯 합니다. 

 

익명사용자 님이 2016년 4월 21일 답변
칩셋확인방법을 잘모르겠네요..ㅠ 우선 올려주시는데로 한번 해볼게요..감사합니다!
죄송합니다만.. 어떻게 조절하는건가요?.....그걸 잘모르겠어요..ㅠㅠ 어떻게 구글링해야될지도  잘모르겠어용..
camera 클래스의 setParameters, Surface의 사이즈, MediaRecoder의 setVideoSize사이즈를 각자 조정해야 할겁니다. 내장 플레이어에서 지원되는 사이즈를 확인하고 맞춰보세요.. 특정 사이즈만 되게 해뒀을수도 있어용...-ㅇ-;;
...