왜 라디오에 집착해서 이렇게 골치아픈 일이 생겼는지 모르겠지만, 나도 역시나 구글검색을 통해서 많은 도움을 받았으므로 필요한 누군가에게 도움이 될 것이라는 기대 그리고 나중에 시놀을 다시 세팅할 때 참고하기 위해서 제대로 정리해 본다. 아래의 2개의 포스팅은 더 이상 볼 필요없이 참고용으로만 활용하면 되겠다. 짜잔~
현재 환경
- 하드웨어 : Lenovo M73 tiny / i3-4130T / 8GB / 1TB HDD
- 버전/모델 : 6.2-23739 / DS3615xs
시놀로지(헤놀로지)를 가지고 있다는 가정하에, 라디오 에약녹음 방법은 크게 2가지임.
1. 시놀로지 스케줄러를 통한 녹음
가장 쉽고 편리한 방법이므로 우선 이 방법을 활용하되, 녹음이 정상적으로 진행되지 않는 경우가 발생하는 경우는 복잡하지만 다음 방법을 활용할 것.
https://vesselor.tistory.com/40
2. 시놀로지의 도커(Docker)에 우분투(Ubuntu)를 설치해서 녹음
위의 방법에서 시놀로지 내부 다른 프로세서와 예약녹음에 사용되는 ffmpeg간의 충돌과 같은 문제로 인하여 발생할 수 있는 문제를 최소화 할 수 있을 것으로 예상됨.
#1 시놀로지에 도커(Docker) 설치
패키지 센터 → Docker 검색 → 설치
#2 도커에 우분투(Ubuntu) 설치
도커실행 → 레지스트리에서 ubuntu 검색 → 더블클릭 → 태그선택 "latest" 선택
이후 과정은 아래 포스팅의 상세한 내용을 참고
https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=8045
#3 우분투(Ubuntu) 설정
시놀로지에 SSH로 접속해서 아래 명령어 입력,
docker exec -it ubuntu1 /bin/bash
시놀로지 도커내에 설치된 우분투에 접속해서 아래의 명령어를 한 줄씩 입력해서 설치. 시간이 다소 걸림.
시놀로지 자체에다가 설치하는게 아니라, 시놀로지 안에 새로설치된 운영체제 우분투(Ubuntu)를 세팅해주는 단계임.
apt update
apt-get upgrade
apt-get install ssh
apt-get install htop
apt-get install nano * 우분투 내부 문서편집 프로그램
apt-get install mc
apt-get install net-tools
apt-get install openssh-server
apt-get install ffmpeg * 녹음/녹화가 가능한 ffmpeg 프로그램
apt-get install -y cron * 예약녹음을 가능하게 해주는 프로그램
기타설정으로 root 권한을 사용하기로 한다. 위에 링크된 블로그 설명 참고.
nano /etc/ssh/sshd_config
나노(nano)라는 문서 편집기로 sshd_config 파일을 수정하라는 뜻. 수정이 끝나면 ctrl+X 누르고 Y 누르고 엔터.
#4 예약녹음 사전 테스트
위의 과정을 다 정상적으로 따라하고, 아래를 복사해서 명령어창에 붙여넣기(마우스 우클릭)하고 엔터를 누르면 10초간 녹음된 라디오 파일이 /volume1/docker/ubuntu/nal_sw/의 경로에 저장되어 있을 것. (라디오 주소는 정상이므로, 혹시라도 안된다면, 인터넷 라디오 소스를 수정할 것)
ffmpeg -re -i rtmp://ebsandroid.ebs.co.kr/fmradiofamilypc/familypc1m -vn -acodec copy -t 10 /nal_sw/test_$(date '+%Y-%m-%d-%H%M').m4a
#5 우분투 시간설정
명령어 창에서 date를 입력하면 현재시간을 보여주는데, UTC라고 뜬다면 KST로 맞추기 위해서 아래 내용 실행
apt-get install tzdata
설치 완료 후 Geographic Area에서 6번 Asia, Timezone에서 69번 Seoul 선택하고
다시 date를 입력해서 시간이 KST로 표시되고, 시놀로지 또는 컴퓨터의 시간과 일치하는지 확인.
#6 예약녹음 스크립트 작성 및 업로드
아래 내용을 그대로 혹은 수정해서 메모장에 붙여넣고, 확장자를 모두로 선택하고 test.sh로 바탕화면에 저장한다.
ffmpeg -re -i rtmp://ebsandroid.ebs.co.kr/fmradiofamilypc/familypc1m -vn -acodec copy -t 10 /nal_sw/test_$(date '+%Y-%m-%d-%H%M').m4a
바탕화면에 저장된 test.sh 파일을 시놀로지의 파일스테이션에서 /docker/ubuntu/nal_app/폴더에 넣는다. 필요한 경우 수정할 부분은 붉은색 주소(rtmp://~), 시간(10), 파일명(test_)이며, 10은 10초 동안 녹음하라는 뜻이므로, 한시간을 녹음하고 싶다면 3600으로 바꾼다. test_는 저장되는 파일명이므로 원하는 파일명으로 수정해도 무방.
chmod 755 /nal_app/test.sh
ssh에서 test.sh 에 권한을 부여한다. 실행이 잘되게 해주는 주문같은 것.
#7. 예약녹음 일정 설정
crontab -e 를 입력해서 실행하고, 커서키로 하단 공백으로 이동 아래의 내용을 키보드로 입력한다.
39 7 * * 1-6 /nal_app/test.sh
입력이 끝나면 마찬가지로 ctrl + X 누르고 Y 누르고 엔터
월요일부터 토요일[1-6] 아침 7시[7] 39분[39]에 시놀로지 docker/ubuntu/nal_app/폴더 아래에 있는 test.sh 파일을 실행하라는 뜻. test.sh 파일에는 지정된 라디오 방송주소를 10초간 녹음하라고 되어 있으므로, 월요일부터 토요일까지 매일 아침 7시 39분에 10초간 해당주소에서 나오는 소리를 녹음해서 저장해둔다는 뜻.
예약설정 상세한 방법은 아래 링크를 참고해서 입맛에 맛게 수정.
#8 크론탭(crontab) 자동 실행 설정
시놀로지를 껐다 켜는 경우, crontab이라는 예약녹음 프로그램(데몬 또는 서비스)은 자동으로 실행되지 않으므로 녹음도 진행되지 않는관계로 우분투의 시작프로그램에 등록시켜주는 과정이 필요함. 실행중인 서비스를 확인하는 명령어를 실행.
service --status-all
cron 앞에 [-]는 실행중이지 않다는 뜻으로 crontab에서 설정한 일정대로 작동하지 않음.
cd /etc/init.d * /etc/init.d 라는 폴더로 이동.
nano test * /etc/init.d/ 밑에 test라는 파일을 nano 에디터로 만든다.
빈 창이 나오면, 아래의 내용을 3줄로 입력.
#! /bin/bash
service cron start
exit 0
입력하고 ctrl + X 누르고 Y누르고 엔터
ls -l * 해당 폴더의 파일/폴더 목록을 보여줌
입력하면, test가 생성되어 있음.
chmod 777 /etc/init.d/test * test라는 파일에 권한부여, 입력하면 잘 되니깐 그냥 입력.
update-rc.d test defaults 99 * 우분투를 부팅할 때 test를 실행해라.
뒤에 99를 붙이면, 서비스 부팅 시 마지막 순서로 실행하도록 등록이라는 의미인데, 99를 붙이지 않는 경우 아무리 테스트해봐도 cron이 실행되지 않았기에 아래 포스팅을 참고해서 붙여줌.
https://chiccoder.tistory.com/17
시놀로지 도커 컨테이너에서 우분투 컨테이너를 다시시작 해서 서비스 상태 확인.
service --status-all
cron 앞에 [+}가 붙는지 확인.
검색해서 나오는 대부분의 설명이, 프로그래밍을 어느 정도 해 본 사람만 알 수 있는 설명이라 상당히 반복해서 테스트 해볼 필요가 있었다. 우분투 버전(?) 혹은 종류(?) 그리고 configuration에 따라서 설정값이 조금씩 다를 수 있다는 점 참고.
댓글