사용자 도구

사이트 도구


project:unattendedradiorecorder

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
project:unattendedradiorecorder [2016/11/19 15:03] – [덤프] changwooproject:unattendedradiorecorder [2016/11/19 16:10] (현재) – [마치며] changwoo
줄 73: 줄 73:
 <code bash record_imbc> <code bash record_imbc>
 #!/bin/bash #!/bin/bash
-((mplayer "`~/imbc_py2.py`" -cache 8192 -dumpstream -dumpfile "imbc-`date +%Y%m%d%H%M%S`.m4a" > /dev/null)& echo $! > ~/imbc_rec.pid&)+((mplayer "`~/imbc_py2.py`" -cache 8192 -dumpstream -dumpfile "imbc-`date +%Y%m%d%H%M%S`.m4a" > /dev/null 2>&1)& echo $! > ~/imbc_rec.pid &)
 </code> </code>
  
-쉽죠? 현재 실행 중인 디렉토리에 "imbc-연월일시분.m4a"식으로 파일이 저장됩니다.+쉽죠? 현재 실행 중인 디렉토리에 "imbc-연월일시분.m4a"식으로 파일이 저장됩니다.
  
  
 ==== 종료 ==== ==== 종료 ====
 +mplayer를 백그라운드에 실행시키고 ''imbc_rec.pid'' 파일을 만들었습니다. 지정한 시간 이후에 이 파일을 이용해 mplayer를 종료하면 되겠죠. 종료 후에는 더 의미가 없으니 이 파일을 삭제합니다.
 +
 +코드를 다음처럼 하나 더 만들면 되겠네요.
 +
 +<code bash record_imbc_10s>
 +~/record_imbc
 +sleep 10s
 +kill `cat ~/imbc_rec.pid`
 +rm -f ~/imbc_rec.id
 +</code>
 +
 +위 예는 10초동안 녹음하는 예입니다. 프로그램이 실행되고, URL을 알아오는 등 약간의 소모 시간 때문에 정확하게 10초로 끊어지지는 않을 겁니다. 하지만 일반적인 녹음은 분, 내지 시간 단위로 하실 것이니 몇 초 정도의 오차는 애교로 넘어 가도록 하죠.
 +
 +30분을 녹음할 것이면 ''sleep 10s''부분을 ''sleep 30m'', 1시간을 녹음할 것이면 ''sleep 1h'' 식으로 고치면 됩니다.
 +
 ==== 예약 ==== ==== 예약 ====
 +모든 스크립트가 에러 없이 잘 돌아간다고 확신이 된다면, 이제 예약을 할 수 있습니다. 이쯤 되면 아실 분은 아시겠지만, 예약은 crontab을 사용할 것입니다. 크론탭의 상세한 사용법은 다른 웹페이지를 검색해 보시기 바랍니다. 어렵지 않습니다. 개인적으로 시간을 지정하는 5개의 파라미터는 할 때마다 헷갈리고 틀리기 쉬운데요, 이럴 때는 [[https://crontab.guru/|온라인 에디터]] 등을 사용해 파라미터를 올바로 지정했는지 미리 체크하면 좋습니다.
 +
 +crontab의 기본적인 명령어만 간단하게 남깁니다. 내가 설정한 crontab을 확인하려면 이렇게 합니다.
 +<code bash>
 +crontab -l
 +</code>
 +
 +crontab을 편집하려면 이렇게 합니다.
 +<code bash>
 +crontab -e
 +</code>
 +
 +혹시 VI*가 어렵거나, 반대로 VI*류를 고집한다면 일시적으로 에디터를 변경할 수 있습니다.
 +<code bash>
 +EDITOR=/bin/nano crontab -e
 +</code>
 +nano의 저장, 나가기 키는 Ctrl+x입니다.
 +
 +==== 소거 ====
 +라디오 프로그램은 매일매일 방송되기 때문에 예약을 하고 녹음을 하면 모르는 사이에 양이 꽤 불어납니다. 꾸준히 듣기도 힘들고, 애초에 라디오를 자주 듣는 마당에 그렇게 꼬박꼬박 녹음을 할 이유도 드물기도 합니다. 그러므로 매일 녹음을 하는 것 보다는 특별한 순간이나, 아니면 자기가 좋아하는 코너가 있는 경우에만 녹음을 하는 것이 더 좋습니다.
 +
 +아무튼 무작정 파일이 우수수 늘어나는 것이 별로 좋지 않다고 느껴지신다면, 오래된 파일은 자동으로 지우는 것이 바람직합니다. 이럴 때는 find 명령을 활용하면 되겠네요. 그 예 중 하나가 아래입니다.
 +
 +<code bash remove_old_record>
 +#!/bin/bash
 +find ~ -maxdepth 1 -mtime +14 -type f -name "*.m4a" -exec echo {} will be deleted \;
 +</code>
 +
 +2주가 지난 m4a는 지울 것이라는 출력을 합니다. 이 스크립트는 ''-exec echo ... \;'' 처럼 되어 있으니 실제로 지우지는 않습니다. 이것을 ''-exec rm {} \;'' 처럼 바꾸면 실제로 지우는 역할을 하겠죠. 이 스크립트 또한 적절히 크론으로 등록하시면 되겠습니다
 +
 +
 +===== 마치며 =====
 +어릴 적 카세트 테이프에 정성껏 라디오 녹음을 하던 추억을 회상하며, 무인 인터넷 방송 녹음 스크립트로 그걸 현대화(?) 해 봤습니다. 이 기능을 활용하면 예전보다 훨씬 쉽게, 그리고 깔끔한 결과물이 나옵니다. 만약 NAS에 개인 스트리밍 서비스까지 가능하면 더욱 좋을 것 같네요. 아무쪼록 결과물들로 좋은 추억을 쌓는데 활용하시기를 부탁드리겠습니다.
 +
 +다시 한 번 말씀드립니다. 저는 이 글을 불법 복제나 저작권 위반을 조장할 목적으로 적지 않았습니다. 녹음된 파일은 개인적으로만 사용해 주십시오. 함부로 배포하지 말 것을 당부드립니다. 
  
project/unattendedradiorecorder.1479567822.txt.gz · 마지막으로 수정됨: 2016/11/19 15:03 저자 changwoo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki