WD My Book Live에서 MMS프로토콜 라디오 녹음하기
컨텐츠 정보
- 24,715 조회
- 0 추천
- 목록
본문
1. 라디오가 저장 될 폴더 생성
임의로 radio라는 폴더로 admin만 접근 가능하게 생성하였습니다.
이후 과정은 마이 클라우드의 그것과 거의 똑같습니다.
패키지 몇개만 설치하는 거구요 ㅎㅎ
2. 관련 필수 패키지를 설치합니다.
apt-get install rtmpdump libav-tools ffmpeg
MyBookLive:~# apt-get install rtmpdump libav-tools ffmpeg
Reading package lists... Done
Building dependency tree
Reading state information... Done
rtmpdump is already the newest version.
libav-tools is already the newest version.
ffmpeg is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 302 not upgraded.
MyBookLive:~#
이미 설치가 되어있다면 위와 같이 뜰 것입니다.
3. mimms 및 python 패키지 설치
apt-get install mimms
위 명령어로 mimms 패키지를 설치합니다.
MyBookLive:~# apt-get install mimms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libmms0 python-support
The following NEW packages will be installed:
libmms0 mimms python-support
0 upgraded, 3 newly installed, 0 to remove and 302 not upgraded.
Need to get 86.0kB of archives.
After this operation, 302kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.us.debian.org wheezy/main libmms0 0.6.2-3 [41.6kB]
Get:2 http://ftp.us.debian.org wheezy/main python-support 1.0.15 [33.6kB]
Get:3 http://ftp.us.debian.org wheezy/main mimms 3.2.2-1 [10.7kB]
Fetched 86.0kB in 4s (17.4kB/s)
Selecting previously deselected package libmms0.
(Reading database ...
dpkg: warning: files list file for package `ramlog' missing, assuming
package has no files currently installed.
dpkg: warning: files list file for package `libparted0' missing, assuming
package has no files currently installed.
(Reading database ... 18967 files and directories currently installed.)
Unpacking libmms0 (from .../libmms0_0.6.2-3_powerpc.deb) ...
Selecting previously deselected package python-support.
Unpacking python-support (from .../python-support_1.0.15_all.deb) ...
Selecting previously deselected package mimms.
Unpacking mimms (from .../archives/mimms_3.2.2-1_all.deb) ...
Processing triggers for man-db ...
Setting up libmms0 (0.6.2-3) ...
Setting up python-support (1.0.15) ...
Setting up mimms (3.2.2-1) ...
Processing triggers for python-support ...
MyBookLive:~#
대략 위와 비슷하게 진행됩니다.
그리고 python 패키지도 설치해줍니다.
apt-get install python
MyBookLive:~# apt-get install python
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libexpat1 libncursesw5 libssl1.0.0 python-minimal python2.5
python2.5-minimal python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python2.5-doc binfmt-support python2.7-doc
Recommended packages:
libgpm2
The following NEW packages will be installed:
libssl1.0.0 python2.7 python2.7-minimal
The following packages will be upgraded:
libexpat1 libncursesw5 python python-minimal python2.5 python2.5-minimal
6 upgraded, 3 newly installed, 0 to remove and 296 not upgraded.
Need to get 10.4MB of archives.
After this operation, 16.4MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.us.debian.org wheezy/main libncursesw5 5.9-10 [132kB]
Get:2 http://ftp.us.debian.org wheezy/main libssl1.0.0 1.0.1e-2 [1183kB]
Get:3 http://ftp.us.debian.org wheezy/main libexpat1 2.1.0-1 deb7u1
[142kB]
Get:4 http://ftp.us.debian.org wheezy/main python2.7-minimal 2.7.3-6
[1753kB]
Get:5 http://ftp.us.debian.org wheezy/main python2.7 2.7.3-6 [2639kB]
Get:6 http://ftp.us.debian.org squeeze/main python2.5 2.5.5-11 [3009kB]
Get:7 http://ftp.us.debian.org squeeze/main python2.5-minimal 2.5.5-11
[1285kB]
Get:8 http://ftp.us.debian.org wheezy/main python 2.7.3-4 deb7u1 [181kB]
Get:9 http://ftp.us.debian.org wheezy/main python-minimal 2.7.3-4 deb7u1
[42.8kB]
Fetched 10.4MB in 13s (754kB/s)
Preconfiguring packages ...
(Reading database ...
dpkg: warning: files list file for package `ramlog' missing, assuming
package has no files currently installed.
dpkg: warning: files list file for package `libparted0' missing, assuming
package has no files currently installed.
(Reading database ... 19016 files and directories currently installed.)
Preparing to replace libncursesw5 5.7 20081213-1 (using
.../libncursesw5_5.9-10_powerpc.deb) ...
Unpacking replacement libncursesw5 ...
Selecting previously deselected package libssl1.0.0.
Unpacking libssl1.0.0 (from .../libssl1.0.0_1.0.1e-2_powerpc.deb) ...
Preparing to replace libexpat1 2.0.1-4 lenny3 (using .../libexpat1_2.1.0-
1 deb7u1_powerpc.deb) ...
Unpacking replacement libexpat1 ...
Selecting previously deselected package python2.7-minimal.
Unpacking python2.7-minimal (from .../python2.7-minimal_2.7.3-
6_powerpc.deb) ...
Selecting previously deselected package python2.7.
Unpacking python2.7 (from .../python2.7_2.7.3-6_powerpc.deb) ...
Preparing to replace python2.5 2.5.2-15 lenny1 (using .../python2.5_2.5.5
-11_powerpc.deb) ...
Unpacking replacement python2.5 ...
Preparing to replace python2.5-minimal 2.5.2-15 lenny1 (using
.../python2.5-minimal_2.5.5-11_powerpc.deb) ...
Unpacking replacement python2.5-minimal ...
Preparing to replace python 2.5.2-3 (using .../python_2.7.3-
4 deb7u1_all.deb) ...
running python pre-rtupdate hooks for python2.7...
Unpacking replacement python ...
Preparing to replace python-minimal 2.5.2-3 (using .../python-
minimal_2.7.3-4 deb7u1_all.deb) ...
Unpacking replacement python-minimal ...
Processing triggers for man-db ...
Setting up libncursesw5 (5.9-10) ...
Setting up libssl1.0.0 (1.0.1e-2) ...
Setting up libexpat1 (2.1.0-1 deb7u1) ...
Setting up python2.7-minimal (2.7.3-6) ...
Linking and byte-compiling packages for runtime python2.7...
Setting up python2.7 (2.7.3-6) ...
Setting up python2.5-minimal (2.5.5-11) ...
Setting up python2.5 (2.5.5-11) ...
Setting up python-minimal (2.7.3-4 deb7u1) ...
Setting up python (2.7.3-4 deb7u1) ...
Linking and byte-compiling packages for runtime python2.7...
running python rtupdate hooks for python2.7...
running python post-rtupdate hooks for python2.7...
Linking and byte-compiling packages for runtime python2.7...
Processing triggers for python-support ...
MyBookLive:~#
대략 위와 같이 설치됩니다.
reboot
위 명령어를 내려 재부팅을 해줍니다.
4. 녹음 스크립트 작성하기
mms 프로토콜을 지원하는 인터넷 라디오가 많기 때문에
각각의 방송에 맞게 스크립트를 작성하면 됩니다.
예를 들어 MBC FM4U를 녹음하고 싶다면
nano /DataVolume/EBSradio/mbc_fm4u.sh
위 명령어로 들어가서
#!/bin/bash
RADIO_ADDR="mms://211.181.136.136/livefm"
PROGRAM_NAME=$1
RECORD_MINS=$(($2))
DEST_DIR=$3
TEMP=/DataVolume/EBSradio/`date %Y%m%d-%H%M`
REC_DATE=`date %Y%m%d-%H%M`
OUTPUT_FILENAME=$PROGRAM_NAME"_"$REC_DATE.mp3
mimms -t $RECORD_MINS $RADIO_ADDR $TEMP > /dev/null 2>&1
ffmpeg -i $TEMP -f mp3 -ab 128k $OUTPUT_FILENAME > /dev/null 2>&1
rm $TEMP
mkdir -p $DEST_DIR
mv $OUTPUT_FILENAME $DEST_DIR
위 내용을 그대로 붙여넣기 하고
컨트롤 O, 엔터, 컨트롤 X를 하여 저장 후 닫습니다.
위에 빨간색으로 표시한 부분이 mms 주소가 들어갈 부분입니다.
chmod 755 /DataVolume/EBSradio/mbc_fm4u.sh
위 명령어로 실행 권한을 줍니다.
하나만 더 예를 들면, SBS 파워FM의 경우
nano /DataVolume/EBSradio/sbs_pwfm.sh
위와 같이 알아보기 쉽게 파일 이름을 정하고
#!/bin/bash
RADIO_ADDR="mms://114.108.140.39/magicfm_live"
PROGRAM_NAME=$1
RECORD_MINS=$(($2))
DEST_DIR=$3
TEMP=/DataVolume/EBSradio/`date %Y%m%d-%H%M`
REC_DATE=`date %Y%m%d-%H%M`
OUTPUT_FILENAME=$PROGRAM_NAME"_"$REC_DATE.mp3
mimms -t $RECORD_MINS $RADIO_ADDR $TEMP > /dev/null 2>&1
ffmpeg -i $TEMP -f mp3 -ab 128k $OUTPUT_FILENAME > /dev/null 2>&1
rm $TEMP
mkdir -p $DEST_DIR
mv $OUTPUT_FILENAME $DEST_DIR
위 내용을 그대로 붙여넣기 하고
컨트롤 O, 엔터, 컨트롤 X를 하여 저장 후 닫습니다.
chmod 755 /DataVolume/EBSradio/sbs_pwfm.sh
위 명령어로 권한을 줍니다.
빨간색 주소보면 아시겠죠?
다른 방송도 마찬가지로 sh 파일을 생성하고 해당 주소를 넣으면 됩니다.
5. 테스트하기
잘 되는지 테스트 해봐야겠죠?
/DataVolume/EBSradio/mbc_fm4u.sh mbc_test 1 /shares/radio/mbc
위 명령어를 내리면 1분동안 녹음을 하고 MP3로 변환합니다.
변환하는 시간은 녹음시간의 1/3 정도 됩니다.
1분 녹음의 경우 변환하는데 20초 정도가 소요되며, 20분 녹음하면 6~7분 정도
소요됩니다.
변환하는 동안엔 CPU 사용률이 100%가 됩니다.
RTMP 프로토콜의 경우 M4A로 저장하면 순식간에 변환이 가능하나,
mms의 경우 mp3로 변환하지 않으면 파일이 깨지더군요;;
/shares/radio/mbc
위 폴더로 들어가보면 해당 파일이 mbc_test_20140207-0835.mp3 이런 식으로 저
장됨을 볼 수 있습니다.
1분에 대략 1MB 정도 됩니다.
6. 스케쥴 작업 넣기
녹음할 때마다 SSH 접속해서 명령을 내리면 귀찮겠죠?
그래서 자동으로 작업을 수행하게 CRON을 쓸 것입니다.
스케쥴러 강좌는
http://www.wsgvet.com/bbs/board.php?bo_table=iomega&wr_id=200
위 링크의 5번에 있으니 참조하시면 됩니다.
간단하게 예를 들면
00 18 * * * /DataVolume/EBSradio/mbc_fm4u.sh BCS_Music_Camp 120 /shares/radio/mbc
위와 같이 넣으면 매일 오후 6시부터 2시간 동안 녹음을 하게 됩니다.
20분까지는 해봤는데 2시간은 해보질 않아서 잘 될지 모르겠네요.
이상 mms 라디오 녹음 강좌를 마칩니다.
-
등록일 2016.01.23
-
등록일 2015.12.23WD My Cloud 시놀로지OS 사용기댓글 102
-
등록일 2014.10.07
-
등록일 2014.10.06
관련자료
-
서명우성짱의 NAS를 운영하고 있습니다.
저의 즐거움이 여러분의 즐거움이면 좋겠습니다.