2011-10-24 11 views
0

일반적에서 RTSP 비디오 스트림에서 스냅 샷을 얻기 나는 여전히 공급 업체에서 제공하는 URL이있는 IP 카메라에서 스냅 샷을 얻을 수 있습니다. 그러나 이러한 방식으로 제공되는 jpeg는 품질이 좋지 않으며 다른 이미지 형식의 스냅 샷이나 더 작은/무손실 압축을 제공하는 기능은 없습니다. 는 IP 카메라

은 내가 수동으로 화면을 캡처 H264는 VLC와 카메라에서 스트리밍 RTSP를 열 때, 결과 이미지가 이전에 관찰 된 JPEG 아티팩트 전혀 없습니다났습니다.

질문입니다, 나는 C++ 프로그램과 H264 스트림에서 이러한 뛰어난 스냅 샷을 얻을 얼마나? 이미지 (주석, 자르기, 얼굴 인식)에 대해 여러 작업을 수행해야하지만 가능한 초기 이미지의 품질이 높아야합니다.

(나는 CURL와 JPEG 이미지를 얻을. 이것은 내 previous question 관련이 있습니다하지만 지금이 새로운 하나의 가능한 경우와 스냅 샷 게터를 교체하고 싶습니다. 내가 다시 리눅스에서 실행하고, 페도라 11)

답변

0

당신은 카메라에 연결하는 비디오 피드를 받기 시작, 조각 모음/비디오 프레임을 패킷 화하기 위해 RTSP 클라이언트 구현이 필요하고 당신은 그것을 얻을 필요에 따라 프로세스/선물/저장합니다.

당신은 잘 알려진 RTSP 라이브러리/implemetnation로 live555 library으로 볼 수도 있습니다. 나의 이해가 잘못되면

+0

나를 수정 : 셋업 요청, 다음 PLAY 요청을 보내도록 RTSP 클라이언트를 사용; 비디오를 메모리의 일부 버퍼에 저장하십시오. 버퍼에있는 내용을 무손실 이미지 형식으로 디코딩하십시오. 디코딩 된 이미지에서 프레임을 가져옵니다. DoStuff(); 버퍼가 다시 채워질 때 반복하십시오. – Morpork

+0

이것은 기본적으로 정확하지만 세부 사항은 생략되어 있습니다. JPEG over HTTP를 사용하면 요청을 보내고 모든 것을 다시 얻을 수 있습니다. RTSP에서 conent는 TCP 또는 UDP, H.264 at을 찾는 둘 이상의 형식 설명자, 원래 H.264 비트 스트림을 얻기위한 패킷 압축 해제를 통해 전달 될 수 있습니다. 로켓 과학이 아니지만 JPEG 스냅 샷의 경우처럼 간단하지는 않습니다. –

관련 문제