Upload
flashscope
View
1.137
Download
9
Embed Size (px)
Citation preview
CCTV 영상을 FFmpeg 를 사용해서Time Lapse 로 만들어 보았다 .
공사하는 과정을 기록으로 남기고 싶은데…
어떻게 타임 랩스를 만들까 ?
어떻게 타임랩스를 만들까 ? 1
안드로이드 디바이스를 사용하여 일정 시각마다 사진을 찍어타입 랩스로 만들어 보자http://core0.staticworld.net/images/article/2012/12/androidcamera_primary-100018155-gallery.jpg
스레드로 무한히 돌면서 사진을 촬영하도록 제작
하지만 남는 디바이스가 갤럭시 노트 10.1 뿐…방수를 위해 파일 케이스에 렌즈 구멍을 만들고 옆 틈을 막음불안불안…
http://www.slideshare.net/flashscope/ss-57507640
하지만 메모리를 절약해봐도OnDestroy 에서 알람으로 다시 앱을 부활시켜도한 3-4 일 정도 버티다 멎는 경우가 발생…
결국 샤오미 카메라 + 라즈베리로 만들기 위해 샤오미 카메라를 주문
실제 공사현장에 가보니…인터넷이 안되는 지역…
그리고 건물이 생각보다 빨리빨리 만들어지고 있어더 이상 디버깅을 위해 시간을 낭비할 수 없었음…
문제점 정리안드로이드 앱을 만들어서 타임 랩스 만들기→ 바로 앱이 죽으면 모를까 3-4 일 정도 지나면 앱이 죽지는 않았지만카메라로부터 사진을 못 갖고 오는 경우가 발생→해결에 시간 걸릴 듯현장에 인터넷이 안됨→ 샤오미 + 라즈베리파이 조합은 Wan 은 연결되지 않았지만공유기를 같이 설치하면 연결이 가능하지만 웹으로 사진 전송이 안되어매번 메모리에 저장된 사진을 며칠 단위로 백업을 직접 해줘야 함공사가 순조롭게 진행→ 샤오미 카메라가 도착하길 기다리는 것도… 또 도착 후 다시 구현 ,안드로이드나 샤오미로 프로그래밍 한 것을 디버깅하는 시간도 아까움
고민을 하던 중에 눈에 들어온 특가 세일 때 미리 사둔 CCTV…
CCTV 동영상을 빠르게 재생하면결국 동일한 타임 랩스 영상을 만들 수 있지 않을까 ?
고용량 HDD 로 장기간 촬영이 가능1CH( 카메라 ) 당 하루에 약 6GB 사용 (928*480 12fps)
저장 용량 걱정 없이 비 등으로 인해 공사가 중지될 때마다데이터 수거해서 편집을 함( 후에는 24 시간 촬영이 아니라 6 시부터 20 시까지만 촬영→데이터 절약 )
https://upload.wikimedia.org/wikipedia/en/a/a5/Final_Cut_Pro_X.jpg
하지만 몇 백 시간이나 되는 영상을 일반적인 편집 프로그램으로편집하기는 거의 불가능
다행히 CCTV 에서 영상을 저장할 때약 1 시간마다 별도의 파일로 저장을 해 줌배치작업을 만들어 각 파일마다FFmpeg 로 인코딩 작업을 실시
사용 컴퓨터 환경CPU : Intel i5-2500K @ 3.30GHz
RAM : 8GBHDD disk driveWindows10 x64
FFmpeg 를 직접 빌드 하지 않고바이너리를 직접 받아서 사용https://ffmpeg.zeranoe.com/builds/
ffmpeg -i [input] -vf “setpts=0.000138889*PTS” -an [out.avi]약 한 시간 분량 영상파일 변환에 30 초 소요 그리고 하나로 합침…
문제점
- 화질 저하 ( 원래부터 영상 화질이 나쁘지만 변환 후 더 저하… )- 영상의 절반이 밤… 변화를 볼 수가 없음
야간 장면 없애기
편집 프로그램에서 매일 어두워지는 타임을 찾아서 잘라내는 건엄청난 노가다… 새로운 방식을 찾기로…
이전 방식은 AVI → 빨리 재생된 AVI 였지만일정 시각마다 AVI → PNG 로 변경
1.png2.png
4.png3png
5.png6.png
ffmpeg -i [input] -r 0.0017 -f image2 [out%%3d.png]
1 시간 분량 변환에 기존 약 30 초에서 40 초로 시간이 좀 증가됨
자바로 동일 폴더 내에 있는 png 파일들의각 픽셀을 전부 검사하여 회색 ( 야간 ) 인지 판별
보통 회색 사진은 r, g, b 값이 동일하지만이건 칼라 사진에 적외선 촬영으로 인해 회색이 되었기에 칼라가 섞임r==g==b 가 안되므로 r, g, b 의 값들이 서로 비슷한지를 비교
또 r+g+b 의 값으로 어두운지 아닌지를 판별 값으로 만듦이 값들로 회색 사진인지 최종 판단은 몇 번의 테스트로 매직넘버를 찾음
아날로그 방식의 CCTV 여서인지가끔 심한 노이즈가 발생…이런 건 수동으로 삭제…
하루치 영상으로 만들어진 117개의 png 파일을 검사 시 약 2.17 초 소요
ffmpeg -framerate 30 -i [in%%4d.png] -c:v libx264 -r 30 -pix_fmt yuv420p [out.mp4]
하루치 (73개의 png) 를 하나의 mp4 영상으로 변환시약 1.7 초 소요
공사기간 전체의 사진 (8055개 ) 을 합쳐도약 2 분 28 초로 합치는 속도는 굉장히 빠름
결과물
https://youtu.be/3U9CT7Llmjc
https://youtu.be/krb3gBHmBsg
덤
카메라 위치와 각도를 미리 상상해서 !
처음 카메라를 설치할 때 완성될 때의 모습을 상상해서 과정이 잘보이는위치와 각도를 정할 수 있으면 이상적이 겠지만실제로 하기에는 힘들었음… 때마다 각도를 수정하는 바람에영상이 순간이동 하듯 튀는 장면들이 등장하게 됨
http://icons.iconarchive.com/icons/thvg/slick-drives/512/USB-HD-Drive-icon.pnghttps://cdn2.iconfinder.com/data/icons/pittogrammi/142/01-512.png
인코딩 시간보다 셋톱박스 → 외장하드 → 컴퓨터로 복사하는 시간이훨씬 많이 소요됨 보통 자기 전에 외장하드로 복사하도록 하고다음날 컴퓨터로 복사해서 인코딩 작업을 함(CCTV 하드를 직접 연결해 보았지만 일반적인 파티션이 아니라 포기… )
UFO?!
보통 시간 단위로 파일이 저장되는데 몇십분 단위로 저장이 되고데이터에 손실이 발생한 날을 발견(10 시 이후로는 정상 )
정상
비정상
하늘에 보이는 흰 점…
구름의 역방향으로 느린 속도로 날아가는 점 발견…
점 이동 방향
구름 이동 방향
https://youtu.be/Ost_p0nk78E
유튜브에 업로드 하니 잘 안보이는 군요… .편집하기 전 원본 파일도 업로드 해봅니다흥미있으신 분만 ?!
믿거나 말거나 ...사실 저도 안 믿습니다만 설명하라고 하면 모르겠네요 ...
http://bit.ly/1Nxaqhc
여하튼 이런저런 일도 있었지만…
감사합니다 .