도와주세요!!
글 수 15,339
2012.11.14 18:53:30 (*.250.78.175)
18302
2012.11.19 13:39:33 (*.250.78.173)
오재경님 답변 감사합니다.
제가 질문을 조금 잘못 올린거 같습니다. 일단 보드에서 usb를 통해 캠을 연결했습니다. 캠에서 받은 데이터를 ffmpeg과 ffserver를 이용해 사용자 노트북에서 실시간으로 볼수 있게 할려고 합니다. 이 상황에서 캠에서 받은 raw이미지를 어떤 방식으로 활용 해야 되는지 알려주시면 감사하겠습니다....
2012.11.22 10:55:44 (*.52.177.29)
안녕하세요. wndk602 님.
일단 작업하시려는 것이 USB 캠의 데이터를 실시간으로 전송 하시려고 하는것 같습니다.
이와 같은 작업을 임베디드 보드가 아닌 일반 리눅스 데스크 탑에서 구현해 보시기 바랍니다.
임베디드 보드는 일반 리눅스 데스크탑 보다 성능이 떨어 집니다.
만일, 일반 리눅스 데스크 탑에서 원하시는 성능(실시간)이 확보가 된다 하더라도 임베디드 보드에서도 똑같은 성능으로 구현되기 힘들 수 있습니다.
일단은 일반 리눅스 데스크 탑에서 네트워크이미지 실시간 실험을 해보신 후 임베디드 보드에서 작업을 해보시는것이 좋을것 같습니다.
어짜피 리눅스 프로그램이므로 arm 용으로 크로스 컴파일만 하신다면 같은 소스를 그대로 이용 하실 수 있을 것입니다.
g100-s3c6410 보드를 사용한다면 카메라의 입력은 USB 를 사용하신것 같군요
s3c6410 의 경우 usb 1.1 을 지원합니다. usb 카메라가 usb 1.1 인 경우 640x480 해상도는 지원하지 못합니다.
혹시 하더라도 빨라야 1~2초에 한프레임정도 ..
usb 1.1 인경우 대게의 카메라는 qvga 정도에서 3~4 프레임 나옵니다.
위의 경우는 압축하지 않은 영상을 받을 경우이고 혹시 압축이미지를 카메라로 부터 받는다면 해당하지 않겠죠
다만 압축을 푸는 프로그램, 여기서는 ffmpeg 를 사용했다면 ffmpeg 자체에서 지원하는 소프트디코더가 mcu 에 최적화되지
않아서 지연이 생기겠군요..
ffmpeg 을 최적화 하는것은 영상 전문가들이 하는일이니 ... OTL
가장 쉬운 방법은 우선 usb 2.0 지원하는 MCU(예를 들면 S5PV210) 로 변경하시고 압축형태가 아닌 RAW 이미지를 받아
직접 화면에 뿌리는 방법이 가장 쉽습니다.