태그 보관물: iphone

20101027 :: 우분투 리눅스에서 아이폰 테더링하기

아이폰을 사용하면서 한 가지 아쉬웠던 것 들 중 하나는 윈도나 맥이 아니면 테더링을 할 수 없었다는 것이었습니다. 아이폰 자체가 업무 등에 도움이 되기는 하지만 정작 노트북을 가지고 다니면서 네트워크에 접속해야 할 필요가 있는 경우에는 아이튠즈가 설치된 윈도가 참 아쉽다는 생각을 했었지요. 요 문제로 KT 다니는 아는 동생에게 물어보았더니, 애플이 안해주면 어쩔 수 없다고 ㅠㅠ 하더군요.

하지만 우분투에서도 아이폰 테더링용 드라이버가 나와있더군요. 애플이 공식적으로 배포한 것은 아닌 듯 합니다. 아 여기서 오픈소스의 위력을 새삼 또 깨닫게 되네요.

테더링 드라이버 설치

아이폰 테더링 드라이버는 Mike Sierra 님이 소개해주신 Ubuntu Tweak 이라는 프로그램을 통해 설치할 수 있습니다.

Ubuntu Tweak을 설치하여 실행한 후, 프로그램 > 소스센터에서 “other” 항목을 선택하면 iPhone Ethernet Driver for USB 항목을 발견할 수 있습니다. 이 항목을 선택하기 위해서는 우측 하단에 “잠금풀기”를 클릭하여 비밀번호를 입력합니다.

아이폰 테더링 드라이버의 저장소를 추가한 후, ‘새로고침’ 버튼을 클릭하여 소프트웨어를 내려받을 수 있도록 준비합니다.

그런 다음, 우분투 소프트웨어센터에서 iPhone으로 검색하여 드라이버를 설치할 수 있습니다.

아이폰에서 테더링하기

아이폰에서 테더링을 설정하는 방법은 다음과 같습니다.

1. 설정 > 일반 > 네트워크로 진입합니다.

2. 인터넷 테더링을 선택하고, ‘켬’으로 설정합니다.

인터넷 테더링이 작동하는 방식은 블루투스를 이용하거나 USB 연결 케이블을 이용하는 방법이 있습니다. 아이튠즈에서는 이 둘 모두를 지원하지만, 여기서 설치할 수 있는 드라이버는 USB를 통한 연결만을 지원합니다.

3. 테더링이 켜진 상태에서 아이폰을 USB 케이블로 노트북에 연결합니다.

4. 우분투에서는 새로운 유선 네트워크를 감지하고 인터넷에 연결됩니다.

5. 연결이 완료되면, 아이폰 상단에는 푸른색 막대가 신비스럽게 깜빡이며 테더링 연결 중임을 알려줍니다.

20100608 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg)

지난 포스팅에서 문제가 되었던 부분은 결국 극복을 못했습니다. 워드프레스가 RC 버전이라 생긴 문제인지.. 암튼 계속 이어나갑니다.

Medibuntu의 힘을 빌리다.

Medibuntu 라는 Ubuntu의 사촌쯤 되는 배포판이 있습니다. 미디어 처리에 특화된 녀석으로 온갖 비디오, 오디오 코덱들을 많이 가지고 있는 녀석입니다. 이 녀석을 사용하면 아이폰용 동영상을 거뜬히 인코딩할 수 있다고 합니다.

그렇다고 사용하고 있는 우분투 배포판을 미디분투로 변신 시킬 필요는 없습니다. 다만 코덱 설치와 관련하여 Medibuntu의 저장소(repository)만 살짝 빌려올 생각입니다. 이 부분은 우분투 공식 문서 사이트를 참조하여 설치하도록 합니다. (해당 링크의 페이지에서 Adding The Repository 부분의 명령을 복사하여 터미널에서 실행합니다.)[1. 이 부분을 본문에 삽입하니 포스트가 저장이 안되는 문제가 있어서 뺐습니다.]

이 명령은 Medibuntu에서 사용하는 저장소를 추가하고, 키 인증을 받고, 패키지 목록을 새로 고치는 과정을 수행합니다. 이 과정 중에 인증에 실패했다는 경고가 나올 수 있지만 무시하면 됩니다.

그럼 혹시 모르니, 다음 패키지들을 설치 및 재설치 해보도록 하겠습니다.

  • ffmpeg
  • x264
  • faac
  • libavcodec-extra-52

명령어는 다음과 같습니다.

[bash]$ sudo apt-get –reinstall install ffmpeg x264 faac libavcodec-extra-52[/bash]

여기까지 하면 거의 준비가 끝났습니다. 다만, ffmpeg의 옵션이 매우 복잡합니다. 그래서 역시 구글링에서 얻은 옵션 값을 이용하여 스크립트를 하나 만들었습니다.

단 두 줄로 이루어졌습니다만, 좀 깁니다..

[bash]#!/bin/bash
ffmpeg -i "$1" -r 29.97 -vcodec libx264 -s 480×320 -aspect 16:9 -flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -b 1000k -maxrate 1250k -bufsize 4M -bt 256k -refs 1 -coder 0 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 35 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 80k -ar 48000 -ac 2 "$1.mp4"[/bash]

위의 내용을 복사하여 메모장(gEdit)등에 붙여넣고 적당한 이름을 주고 저장합니다. 패스로 지정된 영역[1. /usr/share/bin 등에 저장하면 일반 내장 명령어처럼 호출할 수 있습니다.]에 저장해도 좋지만 여기서는 귀찮으니, 그냥 동영상 파일들이 있는 디렉터리에 저장하도록 합니다. 위 스크립트는 영상을 인코딩하여 원래 이름 뒤에 .mp4라는 확장자를 붙여서 그 결과를 만들어 내는 명령입니다.

예를 들어 이 스크립트를 aip 라는 이름을 주었다고 가정하겠습니다. 이제 해당 파일을 ‘실행가능하도록’ 만들어야 합니다. 리눅스는 파일 확장자 따위는 필요 없고 다만 ‘실행 가능한 권한’이 있으면 그냥 실행할 수 있습니다. (참 권한에 민감합니다…)

[bash]$ chmod 755 aip[/bash]

만약, 권한이 없다고 한다면 sudo chmod 755 aip로 해 줍니다. 제 경우에는 ntfs 드라이브에서 실행하니 권한이 없다고 하여 sudo 를 통해 실행 권한을 주었습니다.

그리고 해당 디렉터리에서 ./aip “개인의 취향 E01.avi” 라고 입력합니다. (이때 파일명 중간에 빈칸이 들어가서 따옴표로 일부러 둘러쌌습니다.) 그러자 인코딩이 됩니다. 조금 기다렸다 q를 눌러 중지하고 우선 컴퓨터 상에서 제대로 재생되는지 확인해 봅니다. 아무래도 제대로 재생이 되는 듯 하군요.

이제 인코딩을 한 방에 끝내버리겠습니다. 개인의 취향은 총 16편으로 구성되어 있고, 제 PC에는 “개인의취향.E01.avi”와 같은 식으로 이름이 정리되어 있습니다. 이를 한 방에 하려면 for 구문을 쓰면 되지요.

$ for x in 개인의*; do ./aip “$x” ;done

이렇게 작업을 시작한지 40분이 경과되었고, 고작 2편이 인코딩을 조금 전에 시작한 것 같습니다. h264 코덱은 인코딩에 엄청나게 많은 시간이 걸리는 군요. 인코딩 작업이 끝나면, 동영상이 제대로 아이폰에서 재생되는지 확인하고 후속 포스팅을 올리도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.