관심사항/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 의 글을 참고로 하였다.