검색하다가 보니 저런 말이 있었습니다
그냥 영상을 돌리는건 ffmpeg?? 이런거 상관없이 그냥 제공하는 api를 써서 문제없이 동영상이 돌아가던데요
그러면 개발자정보에 있는 NDK ffmpeg는 무엇에 관한 공부를 하는 것인지 알고싶습니다
아는 범위에서 쓰겠습니다. 잘 못 된부분은 지적해주세요.
안드로이나 IOS나 기본으로 제공하는 동영상 코덱은 mp4입니다.기본 제공하는 api는 mp4를 사용했을 것으로 생각됩니다. 기기에 따라서 divx 코덱을 지원하기도 합니다.제조사에 따라서 divx코덱 라이센스를 구입한 경우 입니다.
여러 동영상의 코덱의 라이센스때문에 안드로이나 IOS는 mp4만 지원합니다.
그 때문에 여럭 코덱을 지원하는 ffmpeg를 사용합니다.
오픈 소스라 소스도 전부 공개되었다는 장점이 있죠.수정 배포 하는 경우 소스를 공개해야 하는 단점아닌 단점이 있죠.그래서 곰플레이서 AVPlay 같은 프로그램도 수정된 ffmpeg에 관해서 공개하고 있습니다.
ffmpeg는 소스는 gcc로 컴파일러를 사용하기 때문에
자바에서 네이티브 컴파일된 라이브러리를 사용하기 위해서 jni를 사용하는데
안드로이드에서 jni를 사용하기 위해서눈 NDK라는 도구로 컴파일 해야 됩니다.mp4만 지원하는 동영상 사용한다면 기본적으로 사용하는 api로 개발해도 무관하지만,여러 동영상과 여러 버전의 안드로이, 여러 기기를 지원하려면 ffmpeg는 필수가 되겠죠.
그러나 ffmpeg를 사용하는 순간 문제가 많습니다.저도 잠깐 해보았지만,
하드웨어 가속이 문제가 됩니다.IOS와 안드로이드는 버전도 여러개가지고, 제소사도 많고, 리소스(CPU, RAM)도 달라서,이것을 최속화 하기가 쉽지 않습니다.
아직시작하지 않으셨다면 포기를 권장하고 싶을 정도로 어렵습니다.ffmpeg 컴파일하는 방법은 너무나도 많이 나와 있지만,최적화하는 방법은 거의 없다고 봐야겠네요.고생해서 얻은 정보를 공개하기는 어렵겠죠.
저는 ffmpeg는 어느정도 보았고, open gl es 과 sdl 보고 있습니다.동영상 스트리밍쪽이라서 wowza와 rtsp 도 보고 있네요.
이해되게 설명해주셔서 감사합니다!!
로그인 유지
아는 범위에서 쓰겠습니다. 잘 못 된부분은 지적해주세요.
안드로이나 IOS나 기본으로 제공하는 동영상 코덱은 mp4입니다.
기본 제공하는 api는 mp4를 사용했을 것으로 생각됩니다.
기기에 따라서 divx 코덱을 지원하기도 합니다.
제조사에 따라서 divx코덱 라이센스를 구입한 경우 입니다.
여러 동영상의 코덱의 라이센스때문에 안드로이나 IOS는 mp4만 지원합니다.
그 때문에 여럭 코덱을 지원하는 ffmpeg를 사용합니다.
오픈 소스라 소스도 전부 공개되었다는 장점이 있죠.
수정 배포 하는 경우 소스를 공개해야 하는 단점아닌 단점이 있죠.
그래서 곰플레이서 AVPlay 같은 프로그램도 수정된 ffmpeg에 관해서 공개하고 있습니다.
ffmpeg는 소스는 gcc로 컴파일러를 사용하기 때문에
자바에서 네이티브 컴파일된 라이브러리를 사용하기 위해서 jni를 사용하는데
안드로이드에서 jni를 사용하기 위해서눈 NDK라는 도구로 컴파일 해야 됩니다.
mp4만 지원하는 동영상 사용한다면 기본적으로 사용하는 api로 개발해도 무관하지만,
여러 동영상과 여러 버전의 안드로이, 여러 기기를 지원하려면 ffmpeg는 필수가 되겠죠.
그러나 ffmpeg를 사용하는 순간 문제가 많습니다.
저도 잠깐 해보았지만,
하드웨어 가속이 문제가 됩니다.
IOS와 안드로이드는 버전도 여러개가지고, 제소사도 많고, 리소스(CPU, RAM)도 달라서,
이것을 최속화 하기가 쉽지 않습니다.
아직시작하지 않으셨다면 포기를 권장하고 싶을 정도로 어렵습니다.
ffmpeg 컴파일하는 방법은 너무나도 많이 나와 있지만,
최적화하는 방법은 거의 없다고 봐야겠네요.
고생해서 얻은 정보를 공개하기는 어렵겠죠.
저는 ffmpeg는 어느정도 보았고, open gl es 과 sdl 보고 있습니다.
동영상 스트리밍쪽이라서 wowza와 rtsp 도 보고 있네요.