안녕하세요. 이번에 어플 하나 개발할려고 하는데요..
특정 동영상을 가지고 와서, 슬라이딩 텍스트 입력, 이모티콘 넣기 같은
편집을 할수 있는 어플을 개발할려고 합니다.
난이도가 많이 어려울까요?ㅠ
1. 동영상 분석
=> Mediaextractor로 동영상 분석하여 동영상 데이터 추출(H264/ AAC(오디오 코덱에 따라 다름))
2. 영상 데이터 디코딩
=> MediaCodec을 사용하여 H264데이터를 디코딩하여 YUV420P 이미지를 구함.
3. RGB565로 변환
=> 영상 처리를 위해서 변환합니다. YUV420P로 영상 처리가 가능하시면 변환안해도 됩니다
4. 추출한 RGB이미지에 추가할 슬라이딩 텍스트/이모티콘 추가
=> canvus 등으로 RGB이미지와 슬라이딩 텍스트/이모티콘를 그리고, 그린 결과를 byte array로 구함
(캔버스에 안 그리고 두 데이터를 다이렉트로 연산하는 방식도 가능은 합니다..)
5. YUV420으로 영상 변환
=> 인코딩을 위해 재 변환합니다.
6. 영상 인코딩
=>MediaCodec을 사용하여 H264로 인코딩
7. 실제 파일 생성
=> MediaMuxer를 사용하여 파일 재생성.
사운드의 경우 변경된게 없으니 2~6과정 없이 Mediaextractor에서 추출한 데이터를 다시 Muxing 해주시면 됩니다.
각 단계별로 난이도가 있긴 하지만..
하나씩 차근차근하다보면 가능은 할 겁니다.
또한 설명한 방식은 android API를 기준으로 말씀드린 것으로 ffmpeg같은 것을 사용해서 처리 하는것도 가능은 합니다.
이 경우 Android API에서 제공하지 않는 부분(ex WMV, RMVB..) 도 지원 가능하는 장점이 있으나 100% SW방식이라.
속도 이슈 및 NDK를 사용해서 개발하셔야 해서 코딩 난이도가 많이 올라갈 겁니다.
감사합니다. !! 다 처음보는 것들이지만 도전 한번 해봐야겠네요 감사합니다.^^
로그인 유지
1. 동영상 분석
=> Mediaextractor로 동영상 분석하여 동영상 데이터 추출(H264/ AAC(오디오 코덱에 따라 다름))
2. 영상 데이터 디코딩
=> MediaCodec을 사용하여 H264데이터를 디코딩하여 YUV420P 이미지를 구함.
3. RGB565로 변환
=> 영상 처리를 위해서 변환합니다. YUV420P로 영상 처리가 가능하시면 변환안해도 됩니다
4. 추출한 RGB이미지에 추가할 슬라이딩 텍스트/이모티콘 추가
=> canvus 등으로 RGB이미지와 슬라이딩 텍스트/이모티콘를 그리고, 그린 결과를 byte array로 구함
(캔버스에 안 그리고 두 데이터를 다이렉트로 연산하는 방식도 가능은 합니다..)
5. YUV420으로 영상 변환
=> 인코딩을 위해 재 변환합니다.
6. 영상 인코딩
=>MediaCodec을 사용하여 H264로 인코딩
7. 실제 파일 생성
=> MediaMuxer를 사용하여 파일 재생성.
사운드의 경우 변경된게 없으니 2~6과정 없이 Mediaextractor에서 추출한 데이터를 다시 Muxing 해주시면 됩니다.
각 단계별로 난이도가 있긴 하지만..
하나씩 차근차근하다보면 가능은 할 겁니다.
또한 설명한 방식은 android API를 기준으로 말씀드린 것으로 ffmpeg같은 것을 사용해서 처리 하는것도 가능은 합니다.
이 경우 Android API에서 제공하지 않는 부분(ex WMV, RMVB..) 도 지원 가능하는 장점이 있으나 100% SW방식이라.
속도 이슈 및 NDK를 사용해서 개발하셔야 해서 코딩 난이도가 많이 올라갈 겁니다.