EBS 녹음 스크립트

-1
points

12 sleep 31;
13
14 #오늘의 날짜를 구한다(YYYYMMDD)
15 my $today;
16 my $day;
17 my $month;
18 my $year;
19 my $dir_name;
20
21 ($day, $month, $year) = (localtime)[3, 4, 5];
22 $year += 1900;
23 $month += 1;
24 if ( $month < 10 )
25 {
26 $month = "0".$month;
27 }
28 if ( $day < 10 )
29 {
30 $day = "0".$day;
31 }
32 $today = $year.$month.$day;
33 $power_dir_name = $mycwd."power/"."power_".$year."_".$month;
34
35 my $power_name = "power"."_".$year."_".$month."_".$day.".mp2";
36 my $power_name_mp3 = "power"."_".$year."_".$month."_".$day.".mp3";
37 my $power_name_128bps_mp3 = "power"."_".$year."_".$month."_".$day."_128bps".".mp3";
38 my $power_tag_name = "P"."_".$year."_".$month."_".$day;
39
40
41
42
43 #mkfifo mp3filter;
44
45
46
47 #Japanese
48 #system "toolame -b 64 -a - $power_name < power_mp3filter 1> /dev/null 2>&1 &";
49 system "toolame -b 128 - $power_name < power_mp3filter 1> /dev/null 2>&1 &";
50 system "$mycwd/mplayer -ao pcm:file=power_mp3filter mmst://219.240.37.11/L-FM_300k 1> /dev/null 2>&1 &";
51 # 19m 40s
52 system "sleep 1182";
53 $kpid = `pidof mplayer`;
54 system "kill -9 $kpid";
55
56 #After 20s, because of CPU Power for other recording.
57 sleep 3620;
58
59 $power_filename = $power_name_mp3;
60
61 #mp2 -> mp3
62 system "$mycwd/lame --silent --tt $power_tag_name --ta EBS --ty $year --tc \"무단복제 및 배포를 금지함.\" $power _name $power_name_128bps_mp3";
63 system "$mycwd/lame -b 64 --silent --tt $power_tag_name --ta EBS --ty $year --tc \"무단복제 및 배포를 금지함.\" $power_name $power_name_mp3";
64 #sleep 300;

이전에 phpbb에 포스팅된 글을 보고

0
points

저도 만든 것이 있긴 하거든요.

TIME="20m"
DATE=`/bin/date +%Y%m%d`
URL1="mmst://219.240.37.11/L-FM_300k"
WAV="/home/ftp/en/easy/$DATE.wav"
MP3="/home/ftp/en/easy/$DATE.mp3"

# records stream into wav file during specified period and kills a process
/usr/bin/mplayer $URL1 -ao pcm:file=$WAV &
sleep $TIME
kill %1

# encodes wav into mp3
/usr/bin/toolame -b 32 $WAV $MP3

# removes wav
/bin/rm -f $WAV

그런데 단점이 wav 파일을 만들고 나서 1시간 짜리 분량의 경우 정말 몇 백 메가 됩니다. 그리고나서 다시 압축을 하는데요. 그러면 파일이 확 줄어들기는 하는데 다운로드와 동시에 mp3 인코딩을 하는 방법을 정확히 어떻게 하는 지 모르겠더군요. mkfifo를 쓰면 된다고 글을 보기는 했어서 시도해봤는데 뜻대로 잘 되진 않더라구요. 제 쉘 스크립트에서 mplayer와 toolame을 가지고 mp3 실시간 인코딩을 하는 트릭이 없을런지요? 그럼 ^^

ps. 바뀐 디자인에 처음으로 글 쓰는데 역시 어색합니다;;

http://tinydesk.com

제 소스는 mkfifo를

0
points

제 소스는 mkfifo를 이용하여 파이프를 만들고 이것을 통해 스트림을 toolame으로 실시간 인코딩하고 있습니다.

일부 글이 보이지 않는것은?

0
points

수고 많으십니다.
좋은 스크립트 입니다.
그런데 아래와 같이 내용이 짤려 있네요?

필요없어서 일부러 공개하지 않으신 건가요?
아님 해당 게시판의 버그 인가요?

EBS 녹음 스크립트
sjang 씀 (월, 2006/03/06 - 10:25am) 강좌
12 sleep

mkfifo를 쓰는 부분이

0
points

mkfifo를 쓰는 부분이 12번째 라인 이전에 있나요? -_-;
그리고 보니까 원하는 프로그램이 방송되는 부분만 녹음하려고 처음에 sleep 31하고, duration도 1182로 하신것같은데요, EBS 방송 스트림 지연시간이 30초 정도 되는 것도 있고, 1분 30초 정도 되는 것도 있는데, 운없으면 한 1분정도 짤리겠는데요.. 이거 해결하고 정확하게 프로그램만 녹음할수 있으면 정말 좋을텐데요..

대략 30초...

0
points

같은 소스로 대여섯개의 방송을 녹음하고 있는데요.
시작부분에 잘 맞게 녹음되고 있습니다.

몇초정도 차이가 나는데, 처음은 모두 시작음악이기때문에
별로 상관없더군요.

위에분 소스를

0
points

위에분 소스를 가지고 한겁니다.

#!/bin/sh

TIME="20m"
DATE=`/bin/date +%Y%m%d`
URL1="mmst://219.240.37.11/L-FM_300k"
MP3="./$DATE.mp3"
mkfifo ebsfifo
# records stream into wav file during specified period and kills a process
lame -q2 -b 128 ebsfifo $MP3 &
mplayer $URL1 -ao pcm:file=ebsfifo &
sleep $TIME
kill %1

이상은 Valkyrie

mms://211.106.66.141/live4/kbs/psong182_m.asf
HAPPy !!

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.