본문 바로가기
Linux & Ubuntu

우분투(리눅스) 에서 EBS 라디오 자동녹음 만들기

by 호빵맨 2022. 2. 21.

필요한것

우분투(리눅스) 시스템, crontab(기본설치), rtmpdump (패키지 설치), ffmpeg(패키지설치)

(패키지 설치)의 경우 설치되어 있지 않다면, 

sudo apt-get install {패키지명}

으로 설치 합니다.

구현

Shell Script 를 작성 하여, crontab에 등록합니다. 매일 정해진 시간에 자동으로 라디오 방송을 녹음합니다.

먼저, Shell Script를 작성합니다.

#라디오 주소 및 임시 파일 및 디렉토리 설정
radio_addr="rtmp://ebsandroid.ebs.co.kr/fmradiofamilypc/familypc1m"
tmp_flv_file=/{본인계정tmp directory}/temp1.flv
tmp_wav_file1=/{본인계정tmp directory}/temp1.wav
tmp_mp3_file1=/{본인계정tmp directory}/temp1.mp3
date_=$(date +"%y%m%d")  # 날짜 가져오기

# 라디오 주소 flv 파일로 녹음 마지막 1200 숫자는 초 단위 시간
rtmpdump -r $radio_addr -o $tmp_flv_file -B 1200

# flv를 wav로 변환 후 lame 을 이용해 mp3로 변환.
ffmpeg -i $tmp_flv_file -acodec pcm_s16le -ac 2 -ab 128k -vn -ss 00:00:00 -t 00:20:00 -y $tmp_wav_file1
/usr/bin/lame -h $tmp_wav_file1 $tmp_mp3_file1 > /dev/null 2>&1

# mp3 파일이름을 변환 후 저장 위치로 복사, 임시파일을 크기가 크므로 삭제
cp $tmp_mp3_file1 /{본인계정 저장 위치}/$date_"_easye".mp3
if [ -f /{본인계정 저장 위치}/$date_"_easye".mp3 ]
then
        rm /{본인계정tmp directory}/temp1.*
fi

상기와 같이 shell script를 작성 해 줍니다. 코드안의 주석을 보시면 이해가 가실겁니다.

반응형

그리고 녹음하고 싶은 라디오 프로그램이 시작하는 시간에 shell script가 실행 되도록 crontab에 등록해 줍니다.

crontab -e

명령으로 crontab 설정에 들어갑니다. 다음과 같이 작성합니다.

0 7 * * 1-6 ~/{작성한shell script}.sh

crontab은 ( * * * * * 파일명) 과 같은 형식으로 작성합니다.

앞의 * 다섯개는 각각 분(0~59), 시간(0~23), 일(1~31), 월(1~12), 요일(1~7) 을 의미합니다.

위의 설정은 매주 월요일 ~ 토요일 07:00 에 실행합니다.

작성한 shell script가 20분간 녹음을 하니 매주 월~토요일 아침 07:00 ~ 07:20 까지의 EBS 라디오 방송을 녹음합니다.

검색하셔서 라디오 주소와 시간만 바꾸면 어떤 방송이라도 녹음이 가능합니다.

댓글