관심사항/NAS

07. 아치리눅스에서 EBS 라디오 방송을 녹음해 보자!

렬혈땅꼬마 2014. 2. 13. 22:55

해당 방법은 rtmpdump 라는 패키지를 이용함 


***앞으로 명령어 입력은 #명령어로 작성하도록 해야겠다. 그게 구분이 잘 되는 것 같다. putty로 아치리눅스에 접근해서 #뒤에 있는 명령어를 입력해준다.***


#pacman -S yaourt 


#yaourt -S rtmpdump


rtmpdump는 EBS라디오를 flv 파일 형식으로 녹음하기 때문에 flv를 mp3나 m4a로 변환하기 위하여 ffmpeg이 필요하다.


# pacman -S ffmpeg


여기까지 설치를 위해 준비를 마쳤다. 이제 이것을 바탕으로 스크립트를 작성해 주어야 한다.


# nano /sh파일을 저장할 폴더경로/ebs_record.sh (필자의 경우 nano /media/pogo/ftp/EBSradio/ebs_record.sh)


실행하면 빈 화면이 뜰 것이고 여기에 아래의 내용들을 작성하여 준다.


--------아래---------


#!/bin/bash
RADIO_ADDR="rtmp://ebsandroid.nefficient.com/fmradiofamilypc/familypc1m"
RADIO_NAME="ebs_radio"

PROGRAM_NAME=$1
RECORD_MINS=$(($2 * 60))
DEST_DIR=$3

REC_DATE=`date +%Y%m%d-%H%M`
TEMP_FLV=`mktemp -u`

OUTPUT_FILENAME=$PROGRAM_NAME"_"$REC_DATE.m4a
rtmpdump -r $RADIO_ADDR -B $RECORD_MINS -o $TEMP_FLV
ffmpeg -i $TEMP_FLV -vn -acodec copy $OUTPUT_FILENAME > /dev/null 2>&1

rm $TEMP_FLV

mkdir -p $DEST_DIR
mv $OUTPUT_FILENAME $DEST_DIR

-----------------------

Ctrl+O, 엔터, Ctrl+X 으로  저장하고 nano 편집기를 닫는다. (위의 스크립트를 사용하면 *.m4a 형식으로 저장된다. mp3로 변환하는데 시간도 많이 걸리고 잘 안되는 경우도 많으니 m4a 포멧으로 저장하자. 어지간하면 다 재생이 잘 된다.

저장한 파일의 권한 설정을 위하여 

#chmod 777 /sh파일이 저장된 폴더경로/ebs_record.sh (필자의 경우 chmod 777 /media/pogo/ftp/EBSradio/ebs_record.sh)

잘 동작하는지 확인하기 위해 테스트 해보자.

/위에 설정한 경로/ebs_record.sh Test-file 1 /파일이 저장될 폴더 (필자의 경우 /media/pogo/ftp/EBSradio/ebs_record.sh Test-file 1 /media/pogo/ftp)

위와 같이 실행하면 ebs_record.sh 파일을 실행하고 Test-file이라는 이름의 1분간 녹음 파일이 ftp라는 폴더에 저장된다.(저장 폴더는 사용자 마음대로 정하자. 폴더는 미리 만들어 둬라)

위와 같이 했을 때 1분간 녹음이 잘 된다면 성공이다.

이제는 자동 저장을 위해 crontab를 설정해주면 된다. 

#crontab -e

0 7 * * 1-6 /EBSradio/ebs_record.sh Fluent-English 20 /Pogodata/EBS/Fluent-English
20 7 * * 1-6 /EBSradio/ebs_record.sh Easy-English 20 /Pogodata/EBS/Easy-English
40 7 * * 1-6 /EBSradio/ebs_record.sh Power-English 20 /Pogodata/EBS/Power-English

vi 편집기가 열릴 것이고 붉은 글자와 같이 입력해주자(vi 편집기 명령어 등은 구글링을 해보자. 이게 생각보다 어렵다.)

만약 해당 vi 편집기 사용이 불편하고 잘 모르겠다면 번외편을 참고하자.

EBS라디오 방송 스케쥴을 참고하고 적절하게 crontab의 내용을 수정해주면 된다.

당 강좌는 포고리눅스 카페 http://cafe.naver.com/pogolinux/273 의 글을 참고로 하였다.