기존에는 IDC에 있는 서버를 통해서 EBS 라디오를 녹음하다가 언제부턴가 그 방법에 제한이 걸려 더 이상 이용을 할 수 없게 되었습니다. 마침 우분투를 이용한 방법들이 많이 있어서 한 동안은 우분투를 이용해서 녹음 하였으나 문득 집에 있는 나스를 이용해보자란 생각이 들었습니다. 어차피 우분투에 녹음된 파일을 나스로 백업을 하고 있었기 때문에 굳이 번거롭게 옮기는 작업을 하지 말고 나스 자체를 이용해보기로 하고 일단 폭풍 검색.......
하지만 대부분의 검색 결과가 우분투를 이용한 방법이어서 슬슬 포기할 떄즘 다음과 같은 글을 확인 하였습니다.
시놀로지 적용이 가능하냐는 질문에 chroot를 설치하고 성공했다는 댓글을 보고 다시 검색을 한 결과,
저와 같이 똑같은 게시글을 보고 성공하신 분께서 성공기를 올려 주셨습니다.
해당 글 참고하여 내용 덧붙어 공유하고자 합니다.
제일 먼저 할 일은 시놀로지 나스에 데비안 chroot를 설치하는 것입니다.
다음과 같이 패키지 센터를 열어서 설정에 들어가 패키지 소스를 추가해 줍니다.
이름 : 편하신걸로 구분하면 됩니다. 저 같은 경우는 Debian Chroot 라고 정했습니다
입력하시고 확인을 누르면 다음과 같은 메시지 창을 보실 수 있는데 확인을 눌러 줍니다.
커뮤니티를 선택하시고 아무 내용이 나오지 않을 경우 새로 고침을 눌러 주세요
Debian Chroot 패키지를 설치 해주세요
Debian Chroot를 설치하기 위해서는 Pyton도 같이 같이 설치 해야 합니다. '예'를 눌러서 진행합니다.
다운로드 작업이 끝나면 설치 확인 팝업이 뜹니다. '적용'을 눌러서 진행합니다.
설치 실패 창이 나올 경우 다음과 같이 설정을 변경합니다.
패키지 설정 일반 탭에서 신뢰 수준을 'Synology Inc. 및 신뢰할 수 있는 게시자'를 선택하고 확인을 누르고 다시 Debian Chroot 패키지를 설치합니다.
패키지 설치가 끝났으면 이제 터미널에서 작업을 해야 합니다.
SSH 서비스가 활성화 되어 있지 않으면 제어판에서 해당 서비스를 활성화 해줍니다.
putty나 기타 다른 터미널 접속 프로그램을 이용하여 나스에 root로 접속합니다.
접속 후 다음과 같은 명령어로 chroot를 실행합니다.
chroot /usr/local/debian-chroot/var/chroottarget /bin/bash
실행을 하고 나면 위에 화면과 같이 #으로 환경이 바뀐걸 확인 하실 수 있습니다.
근데 왠 warning 메시가 떠서 상당히 거슬리네요. 로케일 설정이 되지 않아서 나오는 경고 메시지인데 사실 별 지장은 없으나 거슬리니깐 이것도 같이 해결하도록 하겠습니다.
로케일 설정과 EBS 녹음을 위한 패키지들을 설치하도록 하겠습니다.
우선 rtmpdump 패키지를 설치해야 하고 ffmpeg 설치를 합니다. 저같은 경우는 최종 아웃풋 파일을 mp3로 하기 위해 lame 패키지도 설치하겠습니다. 그리고 로케일 설정이 안되서 나오는 경고 메시지를 해결하기 위해 locales 패키지도 같이 설치합니다.
패키지를 설치하기 전 패키지 업데이틀 합니다.
터미널에 apt-get update 를 입력하고 실행합니다. 업데이트에 다소 시간이 소요됩니다.
업데이트가 끝나면 다음 명령어를 순차적으로 실행합니다.
apt-get install rtmpdump
apt-get install ffmpeg
apt-get install lame
apt-get install locales
설치가 다 됐으면 우선 로케일 설정부터 해결토록 하겠습니다.
다음 명령어를 터미널에 입력하고 실행하면 아래와 같은 화면이 나옵니다.
dpkg-reconfigure locales
그러면 화면을 내려서 'en_US.UTF-9 UTF-8'을 선택하고 OK를 눌러서 다음 화면으로 이동합니다.
en_US.UTF-8을 선택하고 OK를 눌러 줍니다.
해당 설정이 끝나면 이제 로케일 관련된 경고 메시지는 더 이상 안 뜰겁니다.
이제 EBS 녹음을 위한 다음 단계로 진행합니다.
우선 나스의 공유 폴더와 mount 시켜 줄 디렉토리를 하나 만듭니다.
적당히 /mnt 밑에 만들도록 하겠습니다.
mkdir /mnt/EBS
디렉토리를 만들고 난 후 나스의 공유 폴더에 mount 시켜 줍니다. 저같은 경우는 녹음 파일을 웹상에서 확인 할 수 있게 하기 위해 web 공유 폴더를 활용하도록 하겠습니다.
mount /volume1/web/ebs/downloads /usr/local/debian-chroot/var/chroottarget/mnt/EBS
mount 시킬 디렉토리는 각자 자신의 환경에 맞게 입력하도록 합니다.
그런 후 다음 내용으로 스크립트 파일을 만들어 줍니다. 이 역시 자신의 환경에 맞게 적당히 수정해서 쓰시면 됩니다.
| | |
| #!/bin/bash if [ $# -lt 3 ] then echo $0": insufficient arguement!" echo "usage: $0 [program_name] [recording_time(min)] [target_dir]" exit 1 fi
RADIO_ADDR="rtmp://ebsandroid.ebs.co.kr:1935/fmradiofamilypc/familypc1m"
PROGRAM_NAME=$1 RECORD_MINS=$2 RECORD_SECS=$(($2*60)) DEST_DIR=$3
DATE=$(/bin/date +%Y-%m-%d-%a) DIR_NAME=$(/bin/date +%Y-%m)
TEMP_FLV=`mktemp -u`$PROGRAM_NAME.flv TEMP_WAV=$DATE"-"$PROGRAM_NAME.wav MP3_FILE_NAME=$DATE"-"$PROGRAM_NAME.mp3
rtmpdump -q -r $RADIO_ADDR -B $RECORD_SECS -o $TEMP_FLV sleep 1 ffmpeg -i $TEMP_FLV -acodec pcm_s16le -ac 2 -ab 64 -vn -y $TEMP_WAV > /dev/null 2>&1 lame -h $TEMP_WAV $MP3_FILE_NAME > /dev/null 2>&1 sleep 1
rm -rf $TEMP_FLV rm -rf $TEMP_WAV
mkdir -p /mnt/EBS/$DIR_NAME mkdir -p /mnt/EBS/$DIR_NAME/$DEST_DIR
mv $MP3_FILE_NAME /mnt/EBS/$DIR_NAME/$DEST_DIR | |
| | |
해당 스크립트에 실행 권한을 주고 crontab에 등록해주면 녹음이 되시는 걸 확인 하실 수 있습니다.
저 같은 경우는 다음과 같이 crontab에 등록해서 사용합니다.
| | |
| 00 05 * * 1-5 /mnt/EBS/ebs_rec.sh pocket_chinese 10 pocket_chinese 10 05 * * 1-5 /mnt/EBS/ebs_rec.sh mid_level_japanese 20 mid_level_japanese 30 05 * * 1-5 /mnt/EBS/ebs_rec.sh mid_level_chinese 20 mid_level_chinese 50 05 * * 1-6 /mnt/EBS/ebs_rec.sh pocket_english 10 pocket_english 00 06 * * 1-6 /mnt/EBS/ebs_rec.sh toeic_king 20 toeic_king 20 06 * * 1-6 /mnt/EBS/ebs_rec.sh easy_writing 20 easy_writing 40 06 * * 1-6 /mnt/EBS/ebs_rec.sh listen_english 20 listen_english 00 07 * * 1-6 /mnt/EBS/ebs_rec.sh talk_english 20 talk_english 20 07 * * 1-6 /mnt/EBS/ebs_rec.sh easy_english 20 easy_english 40 07 * * 1-6 /mnt/EBS/ebs_rec.sh power_english 20 power_english 00 23 * * 1-6 /mnt/EBS/ebs_rec.sh toeic_speaking 20 toeic_speaking 20 23 * * 1-6 /mnt/EBS/ebs_rec.sh fly_english 20 fly_english | |
| | |
여기까지 하면 EBS 자동 녹음 시스템(?)이 완성됩니다.
추가로 하나 더 해주실 작업이 있다면 나스를 재부팅 할 경우 mount 시켜 놓은 디렉토리가 해제가 되므로 부팅 시 자동으로 마운트 시켜 주는 스크립트를 추가하도록 하겠습니다.
시놀로지 나스 같은 경우 /usr/syno/etc/rc.d 경로에서 해당 스크립트가 기동됩니다. 단 스크립트에 start와 stop 반드시 있어야지만 해당 스크립트가 부팅 시 제대로 기동되니 참고하시기 바랍니다.
참고삼아 제 스크립트 올려 드립니다.
| | |
| #!/bin/sh
case "$1" in 'start') mount /volume1/web/ebs/downloads /usr/local/debian-
chroot/var/chroottarget/mnt/EBS ;; 'stop') umount /usr/local/debian-chroot/var/chroottarget/mnt/EBS ;; *) esac | |
| | |
이렇게 하면 모든 작업이 끝납니다.
저는 이렇게 녹음된 파일을 웹으로 관리를 하여 지인들과 공유하고 있습니다.
mp3 파일을 다운 받을 수도 있고, 바로 스트리밍으로 듣거나 월별로 한꺼번에 다운 받을 수 있게 해 놓았습니다.
그럼 참고가 되었길 바랍니다.