Medical Check

금일 몸무게를 측정하면서 수빈선님께서 핸들링 및 쥐들과 친해지는 방법에 대해 알려주셨다.

먼저 핸들링 시간은 길수록 좋다고 하셨다. 몸무게를 측정할 때도 쥐들에게 적응하는 시간을 주어 이 공간이 안전한 공간이라고 인지시켜주는 것이다. 금일 몸무게를 측정할 때는 쥐들에게 적응 시간을 주면서 측정했다. 추가로 쥐를 저울에 올리기 위해 핸들링을 진행할때는, 쥐 앞에서 시작하는 것 보다는 쥐 뒤에서 핸들링을 시작하는 것이 좋다고 하셨다. 핸들링을 시작하기 전에는 쥐를 여러번 만져주면서 해치지 않겠다는 신호를 주는 것도 좋다고 하셨다. 추가로 쥐들이 reward 즉 후르츠 링 같은 보상을 먹고 있을때의 핸들링은 아직 실험자가 익숙해져 있지 않은 단계이기 때문에 먹고 있을 동안은 계속 쓰다듬는 것 보다는 손을 가져다 대고있는 것이 좋다고 하셨다. 추가적으로 어제 정한 루틴대로 행동하기 위해 금일은 행동 하나하나 신경써서 medical check를 진행했다.

LE 49

49번은 어제 줬던 먹이 30g을 모두 먹었다. 금일 몸무게를 측정 한 후 링3개를 케이지에 넣어 주었다. 드디어 오늘 링을 먹기 시작했다. 링을 넣어주자 마자 3개를 바로 먹었다. 아마도 이제 링의 맛을 알게 된 것 같다. 금일 몸무게는 482g으로 날이 갈 수록 점점 몸무게가 늘어가고 있다. 설탕물은 어제보다 5ml 적은 10ml를 주었다. 어제와 마찬가지로 10ml를 빠르게 먹고 부족했는지 설탕물이 나오는 병을 계속 햝았다. 49번은 계속 환경에 잘 적응하는 모습을 보여준다. 핸들링할때경계심이 많이 줄어든 모습이 보인다.

LE 50

50번은 어제 줬던 먹이 30g을 모두 먹었다. 금일 몸무게 측정 후 링 3개를 케이지에 넣어 주었다. 49번과 마찬가지로 링3개를 넣어주자 마자 링을 모두 먹었다. 금일 몸무게는 461g이고, 금일 설탕물은 10mL를 주었다. 마찬가지로 설탕물을 넣어주자 마자 바로 먹었으며, 몇 분 지나자 설탕물이 바닥을 들어냈다. 부족했는지 병을 계속 핥는 모습까지 보여줬다. 50번은 아직까지 핸들링할때 경계심이 있는 것 같다. 손을 내밀면 몸을 웅크려드는 행동을 보이고, 조금 쓰다듬어주면 그때부터 웅크린 몸을 푼다.

주말에는 출근을 하지 않기 때문에 통에 먹이를 넣어 놓으면 주말당번이신 분이 오셔서 먹이를 주신다고 하셨다. 그리하여 토요일과 일요일 통에 필자의 이름과 49,50을 기입하여 붙여놓았다. 다음주부터 본격적으로 실험에 들어가기 때문에 주말동안 밥양을 조절하기로 결정했다. 금요일은 20g을 주었고, 토요일은 18g 일요일은 10g을 줄 예정이다.

DLC Project

어제 모든 파일의 확장자를 .mp4로 변경하는 작업까지 완료했다. 금일은 원본 영상과 frame rate를 맞추는 단계를 진행했다. frame rate가 원본 영상과 달라진다면 fps가 달라지기 때문에 영상에 데미지가 있을 수 있다. 그러기 때문에 반드시 원본 영상과 맞춰 줘야한다.

어제 0100 파일 즉 프로토콜이 AHD인 파일은 25 frame rate로 확장자 변환이 되었고, 0200 프로토콜이 CVBS인 파일은 frame rate를 30으로 확장자를 변환했다. 이러한 이유는 필자가 CVBS는 확장자 변환할때 명령어에

-framerate 30

을 추가로 했기 때문이다. 그렇다면 25fps로 맞춰야 될 것인가 아니면 30fps로 맞춰야 하는 것인가

cmd창에

ffmpeg -i input.sec

를 입력하면 frame rate를 볼 수 있다. AHD 프로토콜 파일을 위 명령어에 입력해 보면

위 사진처럼 fps가 나타난다 AHD 프로토콜은 25fps를 나타냈다.

CVBS 프로토콜은 fps가 나타나지 않았다. 강제변환하여 .sec 확장자에서 .mp4 확장자로 변환했기 때문에 일반 ffmpege의 명령어는 error가 발생하는 것이다. 그렇다면 CVBS 프로토콜로 저장된 .sec 파일은 frame rate를 어떻게 알아내야 할까?

방법이 없었다. 그리하여 직접 계산하는 방법만 존재하는 것이었다. 그리하여 cmd창에

ffmpeg -f h264 -loglevel debug -i input.sec -f null -

를 입력하여 프레임 갯수를 알고 영상 길이로 나눴다. (영상 길이는 s로 단위변환하여 나눴다.) 나눠보니 약 25fps가 나왔다. 그리하여 필자는 25fps가 원본영상의 frame rate인 줄 알았으나…

DVR system의 CCTV player에 들어가 frame rate를 확인해 보니 30fps로 저장되어 있었다. 분명 ffmpeg을 통해 보았을 때는 frame rate가 25 fps 였지만, CCTV plyaer로 보니 원본 영상 저장이 30fps로 저장되고 있었다. 이유가 무엇일까?

필자는 ffmpeg의 디렉토리를 다시 찾아보았다. ffmpeg의 디렉토리를 보니 답을 알 수 있었다.

ffmpeg는 framerate를 지정해 주지 않으면 자동으로 25fps로 영상을 변환하는 것이었다. 이러한 이유로 필자가 frame rate를 구하기 위해 ffmpeg의 명령어를 사용하고 계산하게 되면 계속 25fps로 나오게 되는 것이었다. 추가로 CCTV player로 본 결과 realtime을 알 수 있었고, realtime과 시간이 맞는 frame rate는 30fps였다.

(위 상단을 보면 realtime이 적혀있다.)

그리하여 다시 25fps에서 30fps로 출력되게 코딩을 수정했다.

(코드를 실행하면 나타나는 GUI이다. 지정한 상위 폴더에서 탐색을 시작하고 하위 들어가 .sec파일을 찾고 .mp4파일로 변환한다. 그 후 저장경로를 output_mp4 파일을 만들어 자동으로 저장된다.)

추가로 주말동안 변환기를 돌릴 수 있게 rat000 파일만 인식하는 것이 아닌 F: 드라이버에 존재하는 .sec 파일을 모두 인식하여 저장경로를 하위폴더로 새로 만들고 저장할 수 있도록 코드를 수정했다. 아마도 주말동안 잘 돌아간다면 월요일에 왔을때는 F 드라이버에 존재하는 모든 .sec 파일이 .mp4파일로 변환되어 DLC에 사용될 수 있을 것 같다.

cage cleaning

금일 cage cleaning을 진행했다. 오늘 cage cleaning을 진행한 쥐들은 LE54,55,56 이다. 추가적으로 필자의 실험쥐들인 LE49, 50 또한 cage cleaning을 진행했다. 54,55,56은 아직 주인이 없는 쥐이기 때문에 몸무게만 측정하고 따로 작성해 두지는 않았다. 49,50의 cage cleaning을 진행하고 난 뒤 오늘 먹을 밥을 넣어줬다. 오늘 넣어준 밥의 양은 20g 이다. cage cleaing을 하고 난 뒤 넣어준 이유는 새로 바뀐 배드에 빠르게 적응하기 위해서 순서를 위 방식으로 했다. cage cleaning을 하고나서 상태를 보니 깨끗해진 cage가 좋은지 49,50 모두 cage.를 이리저리 돌아다니며 cage를 탐색하기 시작했다. 밥을 넣어주니 바로 밥을 먹기 시작했다. 아마도 새로 깔아준 배드가 마음에 든 모양인 것 같다.