Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CCTV영상을 FFmpeg를 사용해서
Time Lapse로 만들어 보았다.
공사하는 과정을 기록으로 남기고 싶은데…
어떻게 타임 랩스를 만들까?
어떻게 타임랩스를 만들까? 1
안드로이드 디바이스를 사용하여 일정 시각마다 사진을 찍어
타입 랩스로 만들어 보자
http://core0.staticworld.net/images/article/2012/12/android...
스레드로 무한히 돌면서 사진을 촬영하도록 제작
하지만 남는 디바이스가 갤럭시 노트 10.1뿐…
방수를 위해 파일 케이스에 렌즈 구멍을 만들고 옆 틈을 막음
불안불안…
http://www.slideshare.net/flashscope/ss-57507640
하지만 메모리를 절약해봐도
OnDestroy에서 알람으로 다시 앱을 부활시켜도
한 3-4일 정도 버티다 멎는 경우가 발생…
결국 샤...
실제 공사현장에 가보니…
인터넷이 안되는 지역…
그리고 건물이 생각보다 빨리빨리 만들어지고 있어
더 이상 디버깅을 위해 시간을 낭비할 수 없었음…
문제점 정리
안드로이드 앱을 만들어서 타임 랩스 만들기
→ 바로 앱이 죽으면 모를까 3-4일 정도 지나면 앱이 죽지는 않았지만
카메라로부터 사진을 못 갖고 오는 경우가 발생→해결에 시간 걸릴 듯
현장에 인터넷이 안됨
→...
고민을 하던 중에 눈에 들어온 특가 세일 때 미리 사둔 CCTV…
CCTV 동영상을 빠르게 재생하면
결국 동일한 타임 랩스 영상을 만들 수 있지 않을까?
고용량 HDD로 장기간 촬영이 가능
1CH(카메라)당 하루에 약 6GB 사용(928*480 12fps)
저장 용량 걱정 없이 비 등으로 인해 공사가 중지될 때마다
데이터 수거해서 편집을 함
(후에는 24시간 촬영이 아니...
https://upload.wikimedia.org/wikipedia/en/a/a5/Final_Cut_Pro_X.j
하지만 몇 백 시간이나 되는 영상을 일반적인 편집 프로그램으로
편집하기는 거의 불가능
다행히 CCTV에서 영상을 저장할 때
약 1시간마다 별도의 파일로 저장을 해 줌
배치작업을 만들어 각 파일마다
FFmpeg로 인코딩 작업을 실시
사용 컴퓨터 환경
CPU : Intel i5-2500K @ 3.30GHz
RAM : 8GB
HDD disk drive
Windows10 x64
FFmpeg를 직접 빌드 하지 않고
바이너리를 직접 받아서 사용
https://ffmpeg.zeranoe.com/builds/
ffmpeg -i [input] -vf “setpts=0.000138889*PTS” -an [out.avi]
약 한 시간 분량 영상파일 변환에 30초 소요 그리고 하나로 합침…
https://youtu.be/NZan4yXEtCI
결과물1
문제점
-화질 저하(원래부터 영상 화질이 나쁘지만 변환 후 더 저하…)
-영상의 절반이 밤… 변화를 볼 수가 없음
야간 장면 없애기
편집 프로그램에서 매일 어두워지는 타임을 찾아서 잘라내는 건
엄청난 노가다… 새로운 방식을 찾기로…
이전 방식은 AVI → 빨리 재생된 AVI였지만
일정 시각마다 AVI → PNG로 변경
1.png
2.png
4.png
3png
5.png
6.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/pitto...
UFO?!
보통 시간 단위로 파일이 저장되는데 몇십분 단위로 저장이 되고
데이터에 손실이 발생한 날을 발견
(10시 이후로는 정상)
정상
비정상
하늘에 보이는 흰 점…
구름의 역방향으로 느린 속도로 날아가는 점 발견…
점 이동 방향
구름 이동 방향
https://youtu.be/Ost_p0nk78E
유튜브에 업로드 하니 잘 안보이는 군요….
편집하기 전 원본 파일도 업로드 해봅니다
흥미있으신 분만?!
믿거나 말거나...
사실 저도 안 믿습니다만 설명하라고 하면 모르겠네요...
http://bit.ly/1Nxaqhc
여하튼 이런저런 일도 있었지만…
혹 강릉에 관광 오신다면?!
http://limebeach.co.kr/
감사합니다.
CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.
CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.
CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.
CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.
Upcoming SlideShare
Loading in …5
×

CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.

2,158 views

Published on

긴 영상을 FFmpeg를 사용하여 Time Lapse 영상으로 제작하였습니다.
http://limebeach.co.kr/

Published in: Engineering
  • Be the first to comment

CCTV영상을 FFmpeg를 사용해서 Time Lapse로 만들어 보았다.

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

×