반응형

결론적으론 절반의 성공이랄까..... ㅡㅡ;


SKY 티비카드의 다른시리즈는 여러 연결방법이 있지만 HDTV6 PCI 의 경우는 가장 나은 외부 연결방법이 S-Video 입니다. 전 컴포넌트단자 정도는 있을 줄 알았는데  ㅜ.ㅜ  사실 이 제품 구입당시 외부에 뭘 연결해 쓸 생각이 아니었으니....

어쨌던 게임기의 S-Video 케이블을 구해서(컴포넌트 단자까지 있는 아마도 대륙에서 제조한 물건...저렴한 가격이 특징임 ^^;) 연결해 봤습니다.

윈도우에서야 당근 잘 되더군요. 왜인지 사운드 부분에 가끔 잡음이 들리는 문제를 제외하면 별 문제 없었습니다.

문제는 리눅스에서인데....일단 mplayer 를 쓰기로 하고 이리저리 알아본 끝에

mplayer tv:// -tv driver=v4l2:device=/dev/video0:input=2:norm=NTSC-M:forceaudio:immediatemode=0

처음은 이걸로....예전에 티비보던 설정을 좀 고친건데요. 이건 문제가 있었습니다. 화면의 반응이 느렸습니다. 방향키를 누르면 약 1초후에 화면에 반응이 나타나는....  ㅡㅡ;
티비나 비디오라면 모를까 게임은 절대 이대로 쓸 수 없었습니다.
참고로 그냥 tv 볼때와 달리 추가된 부분은 input=2 입니다. input 뒤의 값은 어느 단자에 연결했느냐에 따라 알아서 바꿔봐야 하겠지요. ^^;

어쨌던 그래서 구글신에게 물어본 결과 그분이 가르침을 주셨습니다.

mplayer tv:// -vf pp=lb -tv driver=v4l2:device=/dev/video0:alsa:adevice=hw.1,0:input=2:amode=1

제가 얻은 문장인데 일단 반응성은 좋습니다. 방향키 누르자 바로 반응....^^;

하지만.....사운드가 안나옵니다. OTL

arecord 를 이용한 방법으로도 외부 입력의 사운드는 전혀 안나오더군요. 구글신도 이 이상은 모르는듯(아님 제가 못찾았을지도...) 했습니다.

따라서 위의 mplayer 옵션중 alsa 나 adevice=hw.1,0 같은 옵션은 아무 의미가 없습니다.(혹시나 싶어 말씀드립니다만...adevice 의 hw 값도 여러가지로 다 바꿔서 시도해 봤습니다. 사실 이 부분은 자신의 하드웨어 구성에 따라 달라지는 부분입니다.)

해결한 방법은 결국 게임기의 audio 부분을 tv 카드에 연결하는게 아니라 따로 빼내서 사운드 카드의 Line-In 에 직접 연결하는 방법입니다. 이렇게 하려면 케이블, 젠더등을 통해 게임기의 audio 선을 3.5파이의 Line-In 단자에 꽂을 수 있도록 변환해 줘야 합니다만...저희집에는 마침 모든게 준비되어 있기에....(과거 삽질의 결과물인데 이런데 쓸 수도 있군요. ^^;)

정석적인 방법은 아니지만 어쨌든 나오니...

고민~~~~해결........ㅎㅎㅎ

뭐...이왕이면 티비카드에 다 연결해서 성공했으면 좋았겠지만 도저히 더 이상은 못찾겠더군요. 그냥 이 정도에서 타협하기로 했습니다.
게다가 그냥 티비카드에 연결했을때 들리던 오디오부분에서의 간헐적인 잡음이 사라졌으니 이거야 말로 일석이조 !!!!

라는 것으로 위안을 삼기로 했습니다.

그나저나 이 티비카드로 리눅스에서 HDTV를 볼 수 있는 날은 언제일까요. ^^;



반응형


예전에 SKY HDTV6 PCI 를 리눅스에서 사용하는 방법에 대해 올린적이 있습니다. 바로 이 링크 인데요.

특별히 추가된 내용은 아니고 우분투 9.10 설치한 김에 설정해 주다가 알게 된 내용을 잡담형식으로 적어 볼까 합니다. 한마디로 잡담이고 몰라도 사는데 지장없고 티비보는데 지장없는 내용이지요.



mplayer 로 tv를 볼때 그냥 실행하면 음성이 안나옵니다. 이걸 해결하려면 아래의 명령을 줘야 하죠.

arecord -D hw:1,0 -f dat | aplay &


그런데 저 내용중 hw: 다음의 숫자가 제가 저 글을 쓸당시에 문제였는데 심심해서 'man arecord' 를 해보니 대충 알겠더군요.

'arecod -l'

명령을 콘솔에서 쳐보면 저의 경우 다음과 같은 내용이 나옵니다.

**** CAPTURE 하드웨어 장치 목록 ****
0 카드: SB [HDA ATI SB], 0 장치: ALC883 Analog [ALC883 Analog]
  하위장치: 1/1
  하위장치 #0: subdevice #0
0 카드: SB [HDA ATI SB], 2 장치: ALC883 Analog [ALC883 Analog]
  하위장치: 1/1
  하위장치 #0: subdevice #0
1 카드: CX8801 [Conexant CX8801], 0 장치: CX88 Digital [CX88 Digital]
  하위장치: 1/1
  하위장치 #0: subdevice #0

제 능력으론 왜 0번이 2개나 나오는지 알 수 없으나 그건 중요한게 아니죠. 어쨌던 CX8801 이 티비카드와 상관있다는 정도는 눈치챌수 있으니까요. 그렇다면 이걸 이용해 간단히 스크립트로 만들면 아무때나 쓸 수 있겠지요.

왜 이런짓을 했냐 하면, 제 경우 예전에는 저 하드웨어의 숫자가 컴퓨터 켤때마다 달라지는 경우가 있곤 했거든요. 9.10에서도 그럴지는 모르겠지만 마침 심심한김에(?) 간단히 쉘스크립트로 만들어 보기로 했습니다. 하지만 전 쉘스크립트를 전혀 모르기땜에 고생 좀 했습니다. 오랜만에 안하던짓을 했더니 피곤하네요. --;

!/bin/bash

soundno=`arecord -l | grep CX8801 | awk '{print $1}'`
arecord -D hw:$soundno,0 -f dat | aplay

exit 0

위가 쉘의 내용입니다. 실망에 기가차서 웹브라우저를 끄는 모습이 선합니다만...^^; 사실 별거 아니지만 그냥 이렇게 쉘 스크립트를 만들어 쓰고 있습니다. 뭐...그래도 나름 실용적이지 않습니까? ^^;

저 쉘에서 뒤에 '&' 를 안붙인건 그냥 컨트롤+C로 중지시키고 싶을때 중지시키기 위함입니다. 티비보는동안 쉘 하나를 열어놔야 한다는 점이 좀 그렇지만 kill 로 죽이는게 귀찮아서 말이죠. 사실 이것도 찾아서 kill 로 지우는 스크립트를 만들어 보기도 했는데 그냥 컨트롤+C 로 죽이는것도 나쁘지 않다는 생각이 들어서....



참고로 mplayer 관련 쉘스크립트도 올려 놓습니다. 예? 이젠 기대도 안한다고요? 그래도 쉘스크립트 처음이라 힘들었다고요!!!

#!/bin/bash

ch=$1

if [ -z $1 ]
then
    ch=11
fi

mplayer tv:// -tv driver=v4l2:device=/dev/video0:channel=$ch:chanlist=us-cable:norm=NTSC-M:forceaudio:immediatemode=0

exit 0

그렇습니다. 내용은 단순 그 자체입니다. 그냥 스크립트를 실행하면 채널 11번이 기본이고요. 스크립트에 숫자를 줘서 실행하면 그 채널로 뜨게 했습니다. h 와 k 키로 70여개의 채널을 계속 눌러서 옮겨가기는 너무 힘들더라고요. --;

이 스크립트 파일명을 만일 'mtv' 라고 했다면, 그냥 쉘에서 'mtv' 를 치면 채널 11번이, 'mtv 30' 을 입력하면 30번 채널이 나올것입니다.



쉘스크립트 처음만드는게 왜 힘들었냐 하면...이 쉘스크립트는 파이썬이나 루비와 같은 고등(?) 스크립트와 달리 띄어쓰기 하나에도 매우 민감한 녀석이더라고요. 변수에 값하나 할당하는것도 힘들었다니깐요. if 문 뒤쪽 ']' 도 앞의 $1 뒤에 한칸 안띄워 줬다고 얼마나 까탈스럽게 굴던지...변수에 값을 할당할땐 변수앞에 $ 을 안쓴다는걸 몰라서 얼마나 헤맸는데요. --;

뭐...어쨌던 별로 해결된건 없지만...귀찮긴 마찬가지고 말이죠. 하긴 위쪽 사운드 스크립트 같은 경우 부팅시 자동실행되도록 해 놓을 수도 있겠지만 굳이 그럴꺼 까진 없고...TV 보기엔 tvtime 이 더 좋긴 한데 이건 화질이 못봐줄 수준이고 말이죠. mplayer로 tv 보는건 좀 불편한데...

좋은 방법이나 프로그램 있으시면 알려주시면 감사하겠습니다....





반응형
Sky HDTV5 의 경우는 디지털 까지 가능하다고 하는데 제가 가진 HDTV6는 잘 안되더군요. 어쨌던....
일단 HDTV는 공중파만 나오기 때문에 케이블을 주로 보는 저로선 아날로그만 나와도 아쉬운데로 쓸만 하긴 하더군요.

검색을 좀 해보시면 이런저런 글들이 있으실텐데요. 저는 그냥 간단히 했는데 되더군요.

/etc/modprobe.d 디렉토리에 tvcard 라는 파일을 만듭니다. 파일명은 사실 별 상관없는것 같습니다.

options cx88xx card=31 tuner=64
options cx88-alsa

파일내용은 위의 두줄 입니다. 그런다음 재부팅을 해 주세요. tvtime이나 mplayer를 실행해서 티비가 잘 나오는지 확인해 봅니다. tv 프로그램을 켰을 경우 화면이 나오면 성공입니다. 하지만 아무소리도 안나옵니다.

저도 고민하다 검색해보니 다음 사이트에 답이 있었습니다. http://miraclekim.tistory.com/4 이곳인데요.

arecord -D hw:1,0 -f dat | aplay &

위 문장을 터미널에서 입력하면 된다고 했었는데 저는 안되더군요, 잠시고민 끝에 -D 뒤의 문제가 아닌가 싶었습니다. 확실히는 모르겠지만 위 라인의 의미는 아마도 arecord 프로그램으로 특정 하드웨어의 음성출력을 가져오고 그 값을 aplay로 바로 음성출력을 해주는 방법이지 않을까 싶었습니다.
그렇다면 내가 소리가 안나는 이유는 저  -D 옵션의 하드웨어 번호가 저분과 틀려서 그런것이 아닐까 싶었죠. 그래서 다음과 같이 봐꿔봤습니다.

arecord -D hw:2,0 -f dat | aplay &

예 그렇습니다. -D 옵션의 1을 2로 바꿔 줬습니다. 그랬더니 소리가 납니다!!! ^^; 다른분들도 2번에서 소리가 난다는 보장은 못하겠습니다. 한번 직접 시도해 보시는 방법밖에.....

일단 늘 쓰던 tvtime으로 테스트 해 봤는데 화질이 맘에 안들더군요. 그래서 위에 링크한 사이트처럼 mplayer를 시험해 봤습니다. tvtime보다 화질이 훨씬 낫더군요. 그리고 tvtime은 음성싱크가 안맞는 문제가 있기도 하고요.
mplayer로 실행은 다음과 같이 합니다.

mplayer tv:// -tv driver=v4l2:device=/dev/video0:channel=5:chanlist=us-cable:norm=NTSC-M:forceaudio:immediatemode=0

위 링크의 설명과 다른점은 오디오 설정부분을 뺐다는 겁니다. 저 같은 경우 그부분이 에러가 나면서 실행이 안되더군요. 이것 역시 사용하는 환경마다 다를수 있으니 각자 시험해 보셔야 할것 같습니다.

mplayer에 채널선택은 h 키와 k 키로 윗채널 아랫채널을 선택할 수 있습니다. 다른방법이 있는지는 잘 모르겠습니다. mplayer로 tv 본적이 없어서 말이죠. 음....좀더 연구를 해 봐야 겠습니다.

SKY HDTV6 PCI 를 쓰시는 분들에게 도움에 되었으면 합니다.

+ Recent posts