ffmpeg는 움직임없이 부품을 제거합니다


15

네트워크를 통해 RTSP 컨텐츠를 브로드 캐스트 할 수있는 IP 보안 카메라 (192.168.0.8)가 있습니다.

내 컴퓨터에서 다음 ffmpeg 명령을 사용하여 변경하지 않고 해당 (RAW) 내용을 저장할 수 있습니다.

ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -acodec copy -vcodec copy test-raw.mp4

또한 즉시 크기를 조정할 수 있습니다.

ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -vf  "scale=640:-1" test640.mp4

그러나 모션 감지 부분 만 포함 된 비디오 만 저장하는 방법은 무엇입니까?

ffmpeg의 장면 변경 필터를 사용하여 해결하려고 했지만 운이 없습니다.

내 목표-누군가가 카메라 근처에서 움직일 때를 감지하여 비디오 파일에 저장하는 일반적인 비디오 모니터링 솔루션을 갖는 것입니다. 스트림에서 즉석에서 작업을 수행하는 것이 불가능할 수 있으므로 큰 파일을 먼저 저장 한 다음 다른 ffmpeg 명령으로 처리하고 동작 감지 된 부분 만 포함 된 새 비디오 파일을 생성하는 것이 좋습니다. 정확히 무엇을 더 연구해야하는지 조언 해 주시면 정말 감사하겠습니다.

카메라 스트림이 소리없이 전송됩니다. 따라서 원본 비디오에서 이미지 세트를 생성 한 다음 적절한 이미지를 선택한 다음 이미지에서 새 비디오를 저장할 수 있습니다.


이 시스템을 구현 하시겠습니까, 아니면 즉시 사용 가능한 제품을 찾으시겠습니까?
Woeitg

@WOEITG 난 그냥 우분투 15.04 +에 대한 무료 작업 솔루션이 필요합니다
rfedorov

Windows의 경우 모션 감지를 기록하도록 설정할 수있는 ispy라는 소프트웨어가 있습니다. Linux 솔루션을 요청하므로 zoneminder.com도 비슷한 제품이어야합니다. 안타깝게도 귀하의 질문에 대한 직접적인 답변이 없지만 +1도 답변을 원하기 때문에 +1
MyNameWouldGoHere

답변:


7

내가 한 것은, 당신이 말한대로 정확하게하고 스트림의 큰 파일을 저장 한 다음 연속 프레임의 유사성을 비교하는 식과 함께 select FFMPEG 필터 를 사용하십시오 scene: 예 select=gt(scene\,0.003)를 들어. 숫자가 높을수록 프레임 간 더 많은 변경이 무시됩니다. 빠른 테스트에서는 처리하는 푸티 지의 종류에 따라 0.00001-0.00005만큼 낮아야 할 수도 있습니다.

이를 비디오 프레임의 "시작 시간"을 수정 하는 setpts 필터 와 결합 하면 (25fps 비디오의 경우) 다음과 같은 결과가 나타납니다.

ffmpeg -i input.mp4 -vf "select=gt(scene\,0.003),setpts=N/(25*TB)" output.mp4

-vcodec copy비디오 필터 를 사용할 때는 사용할 수 없습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.