mplayer 코덱 지정

opensrc의 이미지

서버에서 mplayer로 라디오 방송을 녹음하려고 했습니다.

[root@free ebs]# mplayer -ao pcm mmst://219.240.37.11/L-FM_300K -dumpstream -dumpfile ebs.wav

아래와 같은 화일이 생겼습니다.

[root@free ebs]# file ebs.wav
ebs.wav: Microsoft ASF

lame으로 바꾼 후 PC로 다운받아 들어보면 지지직 소리밖에 안 납니다.

[root@free ebs]# lame ebs.wav ebs.mp3
[root@dice2 ebs]# file ebs.mp3
ebs.mp3:  MP3, 128 kBits, 44.1 kHz, JStereo

mplayer가 ASF 관련 코덱을 못 찾는 것 같은데,
못 찾는게 맞다면 어떻게 해야 코덱을 잡아줄 수 있을까요?

제가 설정한 내용을 말씀드리면,
/etc/mplayer/codecs.conf 는 mplayer 소스 etc에 들어있는 codecs.conf 를 복사해 주었습니다.
win32 , essential codec 은 /usr/local/lib/codecs 에 몽땅 넣어주고 configure 옵션에 각각 path를 잡아주었습니다.

PC에서 테스트 해보면 잘 되는데 서버에서 하면 좀처럼 안됩니다.
mplayer 를 실행하면 DOCS/HTML/en/codecs.html 를 읽어보라는 메시지가 나와서 읽어봤지만 format 0x161에 관련된 거나 ASF stream 과 관련된 얘기는 없어 설정을 못 잡고 있습니다.

mplayer 실행할 때
-dumpaudio 옵션을 주면 file 형식이 아래와 같고
ebs.wav: data
-dumpstream 옵션을 주면 file 형식이 아래와 같습니다.
ebs.wav: Microsoft ASF

PC에서

[root@free ebs]# mplayer -ao pcm mmst://219.240.37.11/L-FM_300K -dumpaudio -dumpfile ebs.wav

라고 하면 녹음이 잘 되는데요...
서버에 무슨 설정이 잘 못 된건지..
허~ 것 참.. 알쏭달쏭하네요. :shock:
sio4의 이미지

Quote:
[root@free ebs]# mplayer -ao pcm mmst://219.240.37.11/L-FM_300K -dumpstream -dumpfile ebs.wav

[root@free ebs]# file ebs.wav
ebs.wav: Microsoft ASF

스트림을 그대로 덤프하는 것이므로 -ao 옵션은 의미가 없을것 같습니다. 또한 그 스트림의 형식이 .asf 라는 것을 알고 있으므로 저장 파일 이름도 ebs.wav 보다는 ebs.asf 가 좋을 것 같습니다. (사실은 읽으면서 제가 헷갈려서요 :-)

Quote:

[root@free ebs]# lame ebs.wav ebs.mp3
[root@dice2 ebs]# file ebs.mp3
ebs.mp3:  MP3, 128 kBits, 44.1 kHz, JStereo

mplayer가 ASF 관련 코덱을 못 찾는 것 같은데,
못 찾는게 맞다면 어떻게 해야 코덱을 잡아줄 수 있을까요?

lame을 이용하여 asf 형식의 파일을 mp3 형식으로 변환하라는 명령을 하셨는데, 이 부분에서 mplayer 코덱은 어떤 연관성이 있는 것인가요? 최초 저장할 때를 말씀하시는 건가요? 최초 저장은 stream을 있는 그대로 저장하는 것이기 때문에 mplayer의 코덱 처리와는 무관합니다.

그리고 위의 명령이 정상적으로 주어진 것인가요? lame 의 경우 입력은 기본적으로 pcm/wav로 여기는 것으로 기억하는데... 그렇지 않던가요? lame 이 asf 형식의 입력을 받을 수 있도록 변경된 것이 아니라면 위 명령의 결과물은 당연하게도 쓰레기 소리를 담고 있는 파일이 됩니다. (GIGO)

mplayer에서 최초 저장할 때 "-ao pcm" 을 이용한 것이라면 결과물이 pcm wav 이므로 mp3로의 변환이 필요할 수 있겠지만, 만약 사용하시는 mp3player 등이 asf 형식을 지원한다면 -dumpstream 를 사용하고 그렇게 받은 파일을 있는 그대로 연주하면 될테고요, 그렇지 않고 변환이 꼭 필요하다면, -dumpstream 하는 것보다 "-ao pcm" 한 후에 lame 해주거나 아예 바로 "직접 인코딩" 하는 것이 좋을것 같습니다.

Quote:
[root@free ebs]# mplayer -ao pcm mmst://219.240.37.11/L-FM_300K -dumpaudio -dumpfile ebs.wav

라고 하면 녹음이 잘 되는데요...

이렇게 하고 lame 해주면 잘 되더란 말씀입니까? 아니면 위의 ebs.wav 가 정상적으로 연주되더란 말씀입니까?

--
"The love you take is equal to the love you make." The End, by Beatles

opensrc의 이미지

PC에서는 아래 명령을 사용했네요. :oops:
mplayer -ao pcm mmst://219.240.37.11/L-FM_300K -prefer-ipv4 -cache 128

송지석의 이미지

그냥 이렇게 하시면 안되나요?

mplayer mmst://219.240.37.17/L-FM_300k -dumpstream -dumpfile ebs.asf && mplayer -ao pcm ebs.asf && lame audiodump.wav ebs.mp3 && rm audiodump.wav