파이프를 이용해 결과 파일만을 입력으로 넣는 방법이 없을까요?
글쓴이: hayarobi / 작성시간: 목, 2008/09/25 - 9:15오후
음성만 있는 asf파일을 mp3로 변환할 일이 생겼습니다. 검색을 해 보니 asf를 wav파일로 출력하는 것은 mplayer로 가능하고 lame을 이용해 wav파일을 mp3로 바꾸는 것도 가능하더군요. 그래서 아래처럼 했습니다.
$ mplayer -ao pcm:file=key1.wav /home/data1/Ani_Space/radioCD/KEY_Radio_Drama/key01_dr/Key1-2.asf $ lame key1.wav ktmiradio1.mp3 -b 64 -h
그런데 이렇게 하면 중간에 wav파일도 생기고 명령도 두 번 넣어야해서 좀 귀찮습니다. 파이프를 잘 쓰면 어떻게 바로 lame에 넘길 수 있지 않을까 생각을 해 봤습니다. 아래가 그 코드입니다.
mplayer -msglevel all=-1 -quiet -ao pcm:file=- /home/data1/Ani_Space/radioCD/KEY_Radio_Drama/key02_dr/Key2-2.asf | lame - ktmiradio2.mp3 -b 64 -h
그런데 문제가 있었습니다. mplayer자체가 표준 출력으로 여러가지 정보를 뿌리는 통에 결과물 파일과 내용이 섞인게 파이프로 넘어가게 됩니다. 그래서 lame에서 인코딩에 실패를 합니다. 위 코드처럼 -msglevel과 -quiet옵션도 걸고 MPLAYER_VERBOSE 환경변수까지 설정해도 최초의 메시지는 안 없어지더군요. 원래 표준 출력으로 나오게 될 메시지는 버리고 출력 파일만 - 같은 것으로 표준 출력으로 빼서 파이프로 전달할 방법이 없을까요?
이 질문을 작성하는 동안 필요한 wav, mp3인코딩은 다 되겠네요. 40분짜리 asf파일 세 개였는데 요즘 컴퓨터가 빨라서인지 mp3인코딩은 금방 되네요. 그래도 다음에 써먹을 일이 있을 거 같아 질문을 올립니다.
Forums:
mencoder 로
mencoder 로 검색하세요.
OTL
mplayer에서의 fifo기능을 이용하면 될것 같기는 한데요
mkfifo를 fifo하나 만드시고 한번 해 보시죠?
---------------------------------------------
svn + trac + my project --> success ???
---------------------------------------------
요
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
댓글 달기