본문 바로가기
- Synology

시놀로지(헤놀로지) 라디오 자동예약 녹음 - 시행착오 과정

by Vesselor 2020. 4. 9.

 

 

 

2020.04.23 해결 !!!

 

시놀로지의 도커(Docker)우분투(Ubuntu)를 설치하고, 우분투 안에서 ffmpeg를 스케줄러로 작동시켜서  예약녹음 하는 것으로 문제 해결! 세팅은 끝났다. 당분간은 시놀로지 자체 스케줄러로 녹음하고 동시에 우분투에서도 녹음해서 1달정도 테스트삼아 돌려보기로 함.

 

https://vesselor.tistory.com/68

시놀로지 라디오 자동 예약 녹음 - 완전정리

왜 라디오에 집착해서 이렇게 골치아픈 일이 생겼는지 모르겠지만, 나도 역시나 구글검색을 통해서 많은 도움을 받았으므로 필요한 누군가에게 도움이 될 것이라는 기대 그리고 나중에 시놀을

vesselor.tistory.com

어쨌든, 도커에서 ffmpeg를 돌리는 방법까지는 생각하고 진행이 안되서 걍 냅두다가, 시놀로지 안에 vm을 설치하고 윈도우10을 구동할 수 있으면, 우분투도 설치해서 그 안에서 돌리면 된다는 생각을 왜 못했을꼬... 항상 문제가 안 풀릴땐 발상의 전환이 필요하다. 


 

2020.04.13 잠정적인 해결 → 실패

 

 

 

아래에서 적은 모든 방법은 의미 없었던듯, 우선 저장되는 파일명을 영문으로 수정하니 지난 주말에 녹음이 매우 잘 되어 있는 걸 알 수 있었다. 시놀로지와 관련된 웬만한 것들은 앞으로 영문으로 하자!

 

 

 

2020.04.10 오늘도 실패. 승난다.

 

금요일을 즐기고 난 뒤 확인하니, 역시나 3분 녹음되고 종료되어 로그를 살펴보니 3분 57초만 녹음되어있는 걸 알 수 있다.

 

 

 

차분히 하나씩 분석을 해본다. 오늘은 많이 승나지 않는다. 

 

1. 녹음이 대체로 잘 되던 시점과의 다른점은 rclone을 통해 gdrive로 1시간 단위로 주기적인 업로드를 진행하고 있다는 것.

 

2. 그러나, 현재 스케줄러를 사용해서 아침 7시(20분간), 오후 6시(2시간)에 2회 녹음 중인데, 아침 7시에 녹음되는 20분간의 라디오는 끊기지 않고 녹음이 잘 저장되어 있음.

 

3. rclone은 주기적으로 백그라운드에서 돌아가고 있었으므로, 아침 7시에만 rclone의 영향을 받았다고 보기에는 어렵고, 로그를  살펴봐도 연결고리를 찾을 수 없으므로, rclone의 업로드 대역폭 점유로 인한 것은 아니라고 잠정 결론.

 

4. 아침 7시 라디오 파일명은 영문으로, 오후 6시 라디오 파일명은 한글로 저장하고 있으나 녹음 잘 되던 시점에는 한글파일명으로도 잘 저장되었음. 그러나 우선 변수를 없애기 위해서 영문으로 저장되도록 명령문을 수정. 

 

5. rtmp://로 시작하는 스트리밍 소스를 제공하는 소스가 좋지 않은 경우 끊기는 것 아닐지? 현재 mbc 라디오의 충북 주소를 사용중이므로 다른 주소가 필요함. mbc 서울/경기/인천의 경우 secure된 주소를 사용하여 추출이 불가함. 주소 추출 관련 포스팅을 찾아보았으나, 오래된 방법이라 주소 추출이 안되는 듯.

https://daedam.tistory.com/16

RTMP 프로토콜의 미디어 파일 다운법

 RTMP(Real Time Messaging Protocol)은 플래시 미디어 형식(FLV)의 스트리밍 전송 프로토콜입니다.  최근 저작권 문제 등의 이유로 FLV 미디어 전송에 암호화를 한 것이라 생각하면 됩니다. (위키참조)  RT

daedam.tistory.com

 

 

해결방법에 대한 고민 및 하나하나 해볼 것. 

 

1. 예약 작업을 스케줄러에 직접 등록하는 방식이 문제일 수 있으므로, 스크립트를 별도의 파일로 만들어서 특정위치에 저장해두고, 스케줄러에서는 해당 파일을 실행하는 방법으로 변경 하는 방법. 

 

 

 

아래 블로그를 참고해서 시도 해볼만 하다. 

 

https://3jini.tistory.com/93

EBS 라디오 녹음

xpenology에서 ebs 라디오 방송을 녹음한다. 전에 어떤분의 강좌를 통해서 pipe를 이용 EPG채널에 등록하여 tvheadend녹화방식으로 하였는데 이상하게 꼬여서,, 좀더 어찌보면 편한방법으로 해본다. 기

3jini.tistory.com

 

 

2. 시놀로지에 설치된 ffmpeg 자체가 불안정 하므로 rtmpdump를 활용하여 녹음한다. 좋은 대안이긴 하지만, 설명된 링크들이 오래되어 었고, debian chroot를 설치하는 방법이 쉽지 않은 듯. 

 

https://www.clien.net/service/board/cm_nas/13070743

시놀로지 나스 EBS 녹음 방법 중에 Debian chroot 설정 과정에서 막히신 분을 위한 팁 : 클리앙

이걸 위해 오늘 3시간을 날렸습니다. 일단 제 NAS의 정보는 다음과 같습니다. EBS 녹음을 위해 필수 과정이 debian chroot을 설치해야 합니다. 지금 NAS는 이전에 쓰던 하위 버젼의 NAS의 데이터를 그대

www.clien.net

https://www.clien.net/service/board/cm_nas/13073512

Synology DSM 6 이상에서 debian chroot 수동설치패키지 다운받는 곳 : 클리앙

안녕하세요. 클리앙의 오랜유저지만, 글은 거의 써보지 않은 (제 지식은 너무 보잘것 없어서 배워가는것만 하다보니..) 메사리딤이라고 합니다. 처음엔 iptime의 NAS로 입문을 하고, 종사하는 직종

www.clien.net

https://going-together.tistory.com/17

synology NAS DS215j으로 ebs 라디오 녹음하기

오래 벼르던 NAS를 구매하면서 구성하려던 기능 중의 하나가 'ebs 라디오 녹음'입니다. 그 동안은 별도의 리눅스 서버에서 녹음을 하고 있었는데, 이걸 집에서 해보자라는게 목표였습니다. 이걸

going-together.tistory.com

https://cafe.naver.com/synologynas/83232

Synology NAS에 EBS 라디오 어학방송 녹음하기

제 블로그에 올린 글인데, 혹시라도 필요하신 분 계실까 해서 옮겨봅니다. 강대국들 틈바구니에 끼어있는 한국 사람들에게 외국어란 평생 따라다니는 숙제 같은 것이죠.독해, 문법은...

cafe.naver.com

https://www.clien.net/service/board/lecture/7778516

EBS 외국어 라디오 자동 녹음 with 시놀로지 나스 : 클리앙

참고한 게시물 1. http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=149252&page=0&sca=&sfl=&stx=&spt=0&page=0&comment_page=last&cwin=#c_276661CLIEN 2. http://going-together.tistory.com/17 3. 네이버 시놀로지 카페 (가입해야 볼

www.clien.net

 

 

3. 도커를 활용해보면 어떨까 싶어서 일단 검색해본다. 실은 도커 개념도 없거니와, 프로그래밍 개념은 거의 없는 상태인 관계로 하나하나 부딪혀가면서 해본다. jrottenbert/ffmpeg를 설치해서 띄워놓고 불러와서 쓰는 방법은 어떨까 싶지만 그 정도 수준은 안된다. 

 

 

Docker 실행 후 레지스트리 → ffmpeg 검색

 

 

 

jrottenbert/ffmpeg 더블클릭 → latest 선택 → 이미지 탭에서 설치상태 확인

 

 

 

putty로 ssh 접속 후 root 권한 상태에서 docker pull jrottenberg/ffmpeg 입력 후 엔터

 

 

~~ 머리가 뽀사질것 같아 여기서 잠시 중단.

 

 

 

2020.04.09 불가능 결론.

 

쒸익~쒸익~

포스팅 미리 적어두고 테스트 해본 다음에 보완할랬는데, 아래 명령어는 demux 명령어라서(?) 옵션이 안먹히는 것 같다. 아래와 같은 에러 로그만 남겨두고, 방법을 찾은 뒤 다시 보완.

 

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.3 (crosstool-NG 1.20.0) 20150311 (prerelease)
  configuration: --prefix=/usr --incdir='${prefix}/include/ffmpeg' --arch=i686 --target-os=linux --cross-prefix=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-vaapi --disable-decoder=amrnb --disable-decoder=ac3 --disable-decoder=ac3_fixed --disable-encoder=zmbv --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc --enable-yasm --enable-libx264 --enable-encoder=libx264
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 36.100 / 56. 36.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
Unrecognized option 'recover_any_error'.
Error splitting the argument list: Option not found

 


기존의 포스팅의 내용대로, 예약녹음이 매우 만족스럽게 잘 진행되는 듯 하다가 어느 날에는 한 번씩 중간에 녹음이 끊기는 경우가 발생해서 이빠진 것처럼 하루를 놓치는 경우가 있다. 1분정도  녹음하다 중단되거나, 20분만 녹음하다가 중단되는 경우 등등 1시간 이상 녹음하다가 중단되는 경우는 발생하지 않는 것으로 보인다. 

 

https://vesselor.tistory.com/40

헤놀로지(혹은 기타 나스)에 라디오 자동예약 녹음하기

2020.04.23 수정 기존의 방법에서 오류가 나는경우 아래 포스팅 2번 방법을 참고. https://vesselor.tistory.com/68 시놀로지 라디오 자동 예약 녹음 - 완전정리 왜 라디오에 집착해서 이렇게 골치아픈 일이

vesselor.tistory.com

 

2020년 1월 녹음분 : 정상

 

 

2020년 2월 녹음분 : 비정상

* 파일이 없는 날은, 헤놀을 꺼둔 날. 2월 16일 파일은 한 10초쯤 녹음된 것 같다. 

 

 

2020년 3월 녹음분 : 비정상

* 파일이 없는 날은, 헤놀을 꺼둔 날. 3월 26일, 29일도 마찬가지로 녹음되다가 중단. 용량이 제각각.

 

 

 

 

 

 


원인분석을 위해 구글링을 해보니 "패킷 드랍"이 생기는 경우 중단되는 케이스가 있다는 것을 확인. 

 

https://kldp.org/node/95974

[진행중] EBS 방송 녹음을 어떻게 할까요? | KLDP

리눅스에서 매일 방송을 녹음 청취하고 있었는데, 오늘자 방송들이 녹음이 안 되어있습니다. 그래서 확인해보니 예전의 그 주소에서 stream을 찾을 수 없다는 오류가 생기는 거였습니다. EBS 홈페

kldp.org

 

Packt drop으로 다시 검색해보니, 내가 겪는 이슈와 비슷한 질문글을 발견. 나도 2시간동안 지속해서 녹음을 하고 싶고, 중간에 스트리밍 서버가 오류가 나거나, 시놀의 인터넷이 잠시 끊기는 경우에도 무음이거나 잡음 상태로 계속해서 녹음을 하다가, 정상 상태로 복구되면 그 구간부터 계속해서 녹음을 지속하고 싶은것. 극단적인 경우 2시간 짜리 무음 오디오 파일이 생성되더라도 말이다. 

 

 

https://stackoverflow.com/questions/7441686/recording-a-mp3-stream-with-ffmpeg-and-drop-outs

Recording a mp3 stream with FFMPEG and drop-outs

I hope someone can give me pointer, I have a php script that runs the command below to record an live radio mp3 stream to create hour long mp3 recordings. It works very well for my purpose. The only

stackoverflow.com

 

결국, ffmpeg 메뉴얼로 돌아간다. 역시 기초가 중요해.

 

https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment

FFmpeg Formats Documentation

Table of Contents This document describes the supported formats (muxers and demuxers) provided by the libavformat library. The libavformat library provides some generic global options, which can be set on all the muxers and demuxers. In addition each muxer

ffmpeg.org

 

 

fifo 와, drop packet 이 무슨 관련이 있어서 카테고리가 묶여있는지는 모르겠지만 일단 study.

 

 

 

아래 예시에 마침 적당하게 failure 발생 시, 매 초 단위로 indefinitely 하게 attempt 한다고 되어있는 느낌(?)이다. 

 

 

 

근데 예제 사용된 옵션말고, 메뉴얼에서 가장 맘에 드는 옵션이 있다. attempt_recovery 옵션을 override한느 무쌍 찍는 옵션이다. 

 

recover_any_error bool

     If set to 1 (true), recovery will be attempted regardless of type of the error causing the failure. By default this 

     option is set to 0 (false) and in case of certain (usually permanent) errors the recovery is not attempted even

     when attempt_recovery is set to 1.

 

 

기존 포스팅에서 추가했던, 옵션들을 삭제하고 recover_any_error 1 옵션만 추가하기로 한다. 

 

ffmpeg -re -i -recover_any_error 1 "스트리밍  주소" -vn -acodec copy -t 300 "/volume1/경로/$(date +'파일명_'%Y%m%d-%H%M).m4a"

 

 

댓글