게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[NAS] Synology NAS에서 EBS 라디오 자동 녹음하기
게시물ID : computer_251519짧은주소 복사하기
작성자 : 사악한셩
추천 : 1
조회수 : 5749회
댓글수 : 1개
등록시간 : 2015/07/16 11:38:11

기존에는 IDC에 있는 서버를 통해서 EBS 라디오를 녹음하다가 언제부턴가 그 방법에 제한이 걸려 더 이상 이용을 할 수 없게 되었습니다.
마침 우분투를 이용한 방법들이 많이 있어서 한 동안은 우분투를 이용해서 녹음 하였으나 문득 집에 있는 나스를 이용해보자란 생각이 들었습니다. 어차피 우분투에 녹음된 파일을 나스로 백업을 하고 있었기 때문에 굳이 번거롭게 옮기는 작업을 하지 말고 나스 자체를 이용해보기로 하고 일단 폭풍 검색.......
하지만 대부분의 검색 결과가 우분투를 이용한 방법이어서 슬슬 포기할 떄즘 다음과 같은 글을 확인 하였습니다.

http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=149252

시놀로지 적용이 가능하냐는 질문에 chroot를 설치하고 성공했다는 댓글을 보고 다시 검색을 한 결과,

http://going-together.tistory.com/17

저와 같이 똑같은 게시글을 보고 성공하신 분께서 성공기를 올려 주셨습니다.
해당 글 참고하여 내용 덧붙어 공유하고자 합니다.

제일 먼저 할 일은 시놀로지 나스에 데비안 chroot를 설치하는 것입니다.
다음과 같이 패키지 센터를 열어서 설정에 들어가 패키지 소스를 추가해 줍니다.


이름 : 편하신걸로 구분하면 됩니다. 저 같은 경우는 Debian Chroot 라고 정했습니다
위치 : http://packages.synocommunity.com

입력하시고 확인을 누르면 다음과 같은 메시지 창을 보실 수 있는데 확인을 눌러 줍니다.




커뮤니티를 선택하시고 아무 내용이 나오지 않을 경우 새로 고침을 눌러 주세요


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 파일을 다운 받을 수도 있고, 바로 스트리밍으로 듣거나 월별로 한꺼번에 다운 받을 수 있게 해 놓았습니다.


그럼 참고가 되었길 바랍니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호