메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

디지털라이프

셀프 부팅 영화 CD 만들기

한빛미디어

|

2004-12-24

|

by HANBIT

23,201

저자: Robert Bernier, 역 한동훈
원문: http://www.linuxdevcenter.com/pub/a/linux/2004/08/26/bootable_movies.html

나는 내 아들을 사랑하며, 아들의 삶에 필요한 것들을 주려고 하며, 때로는 아들이 원하는 것을 주기도 한다. 내 아들은 꽤 오래 사용했지만 멋진 자전거를 갖고 있으며, 항상 자전거를 타고 외출한다. 물론, 24시간 언제나 인터넷과 연결되어 있는 PC를 갖고 있으며, 스포츠 카 이미지를 보기 위해 끊임없이 인터넷을 서핑한다. 조금 이상한 이유이긴 하지만, 초등학교에 다니는 내 아들이 선생님들에게 리눅스를 사용할 때 윈도우를 사용할 때 보다 총소유비용(TCO)가 적으며, 윈도우는 엉터리라고 얘기하기 때문에 내 아들을 천재라고 생각한다. 나는 내 아들이 윈도우에서 게임할 수 있게 하고 있어서 가끔은 내가 아들에게 너무 많은 것을 주는 게 아닌가 생각하기도 한다. 물론, 11살 때 쇄골이 부러졌을 때 내가 한 것은 사고나기 쉬운 그의 버릇들에 대해 가르친 것 뿐이다.

그러나, 때때로 내가 용납하지 않는 것도 있다. 한가지 예가 나의 DVD 컬렉션이다. 나는 플라스틱과 몽상으로 이뤄진 이 작은 디스크들을 내 아들에게 맡길 수 없다고 생각한다. 내 컬렉션을 볼 수 있게 해달라는 것과 내가 절대적으로 금지하고 있는 내 DVD들을 친구 집게 가져갈 수 있게 해달라는 문제로 논쟁을 벌이기도 한다. 아버지로서 무엇을 할 수 있을까?

정답은 PC에서 볼 수 있는 복사본을 만드는 것이다.

나는 일부 부도덕한 사람들이 엔터테인먼트에서 기업들이 이윤을 창출할 기회를 박탈하는 것으로 기업들을 위협하는 것을 생각만해도 치가 떨린다. 그렇기 때문에 미국은 기업들의 권리를 보호하는 훌륭한 법이 있는 것이다.(캐나다에 살고 있다고 얘기하지 않았던가?) 반면에, 라이선스 문제가 없는 DVD에 한해서 다음과 같은 방법을 사용할 것이다.

영화를 만드는 것은 소프트웨어 및 하드웨어를 고려해야 한다.
  1. 영화를 재생하는 PC는 부트 장치로 CD를 읽을 수 있어야 하며 펜티엄 III 또는 그 이상의 성능을 가져야 한다.
  2. 영화를 제작하는 PC는 DVD를 읽을 수 있어야하며, CD를 구울 수 있어야 하며, 최소 2G의 공간이 필요하다.
영화의 백업 사본을 만들려면 몇 가지 유틸리티가 필요하다.
  • Lame, MP3 인코더
  • Mplayer, DVD를 AVI로 변환할 수 있는 무비 플레이어
  • transcode, 큰 AVI 파일을 작은 파일로 나눌 수 있는 리눅스용 콘솔 유틸리티
  • eMoviX, CD로 구울 수 있는 미니 라이브 리눅스 OS. CD로 부트할 수 있고 Mplayer에서 모든 파일을 자동 실행할 수 있다.
  • mkisofs, ISO 이미지 제작
  • cdrecord, CD 버닝 소프트웨어
  • growisofs, DVD 라이터용 소프트웨어
이 목록이 당황스럽지 않은가? 영화를 제작하는데 필요한 이 유틸리티들을 모두 살펴볼 것이다.

실제로, 위의 모든 것들을 하나도 모아놓은 K3b를 사용하면 많은 것을 알지 못해도 작업을 처리할 수 있다. K3b는 KDE를 사용하는 리눅스 시스템에 최적화된 CD/DVD 버닝 응용 프로그램으로 대부분의 디스크 굽기 작업을 수행할 수 있으며, 편리한 사용자 인터페이스를 제공한다.

영화 제작 과정

영화 제작을 위한 단계는 다음과 같다:
  1. DVD를 AVI로 변환한다.
  2. 전체 AVI를 CD 크기에 맞게 파일을 나눈다.
  3. K3b를 사용해서 각 AVI 볼륨에 대해 eMovieX 프로젝트를 생성한다.
  4. 굽는다.
Mplayer를 사용해서 DVD 추출하기

모든 유티릴티중에서 Mplayer가 반드시 필수인 것도 아니지만, 설정하고 제대로 사용하기가 어려운 것도 아니다. 그러나 Mplayer는 Mplayer 홈페이지Video Playback and Encoding with MPlayer and MEncode, DVD Playback on FreeBSD와 같은 좋은 레퍼런스 사이트들이 많다.

노트: 몇몇 리눅스 배포판은 Mplayer를 제공하지 않는다. 이들 배포판은 법적 규제와 연루되는 것을 피하기 위해 이러한 기능을 제공하지 않는 경향이 있다. 가장 좋은 방법은 Mplayer 사이트에서 직접 다운로드하는 것이다. 또한, 필요한 코덱을 다운로드 받아야한다.

먼저, 코덱을 /use/local/lib/codes/에 설치한다. 그 다음에 Mplayer를 설정하고 컴파일한다.

아이러니하게도 명령줄에서 단 하나의 주문을 사용하는 것으로 AVI를 생성할 수 있다.

/usr/local/bin/mencoder dvd:// -o temp.avi -ovc lavc \
   -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 -oac mp3lame -lameopts \
   cbr:vol=3 -aid 128

명령문을 살펴보자.
  • /usr/local/bin/mencoder 은 Mplayer 명령이다.
  • dvd:// 유틸리티가 읽어들일 디바이스를 지정한다. 트랙 번호를 지정할 수 도 있는데 dvd:://1은 1트랙을 의미한다.
  • -o temp.avi 생성할 AVI 파일의 이름을 지정한다.
  • -ovc lavc 비디오 데이터를 압축하기 위해 libavcodec 코덱을 사용한다.
  • -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 결과 파일을 제작하기 위해 보다 많은 정보를 libavcodec에 알려준다.

    가장 중요한 것은 이 옵션에 대해서 걱정하지 않아도 된다는 것이다. 그러나, vbitrate=1800은 영화의 사이즈를 결정하는데 있어 매우 중요하다. 예를 들어, 이 설정은 17인치 모니터에 알맞은 전체 화면으로 설정한 것이다. 이 숫자를 줄이는 것은 스크린 사이즈를 줄이는 것 뿐만 아니라 파일 사이즈도 줄인다. 이 숫자를 절반으로 줄이는 것은 2시간 짜리를 한장의 CD에 담을 수 있다는 것을 의미한다.

  • -oac mp3lame 오디오 트랙을 MP3 포맷으로 인코딩한다.
  • -lameopts cbr:vol=3 lame의 사운드 인코딩에 사용할 비트 레이트와 볼륨 크기를 설정한다.
  • -aid 128 사용할 오디오 스트림을 선택한다. DVD는 주어진 레코딩에 대해 하나 이상의 언어로 된 사운드 파일이 들어있다. 예를 들어, 128은 영어를 위한 식별 번호이다.

    일반적으로, 이에 대해서 걱정하지 않아도 된다. 내 경우에 종종 프랑스어 사운드 트랙을 위해 129를 사용하며, 국가 식별을 위해 -alang fr를 추가하기도 한다.
인코딩 과정은 몇 시간이 걸리기 때문에 명령을 먼저 테스트하는 것이 좋다. 가장 일반적인 인코딩 실수는 사운드가 제대로 녹음되지 않는 것이고, 이런 과정을 되풀이하는 것은 싫어하게 될 것이다. 테스트 레코딩을 하는 것은 간단하다. 위의 주문에 다음 스위치를 추가한다.

-endpos 30 -ss 00:10:00

이것은 Mplayer가 10분 위치에서 30초 동안 DVD를 레코딩하게 한다.

DVD에 트랙이 1개 이상 있는 경우도 있으며, 첫번째 트랙이 아닌 것을 레코드하고자 할 수도 있다. 가장 쉬운 방법은 해당 부분을 발견할 때까지 트랙을 재생해 보는 것이다. 예를 들어, mplayer dvd://은 첫번째 트랙을 재생하며, mplayer dvd://1은 명시적으로 첫번째 트랙을 재생한다. mplayer dvd://2는 두번째 트랙을 재생한다.

AVI를 만드는 또 다른 주문도 있는데, 이들은 모두 다른 비디오/오디오 코덱을 사용하는 것이다. 예를 들어, 다음 명령처럼 오디오 스트림을 MP3로 변환하지 않고 직접 AVI에 복사할 수도 있다.

/usr/local/bin/mencoder dvd://1 -endpos 30 -ss \
   00:10:00 -o temp.avi -ovc lavc -lavcopts \
   vcodec=mpeg4:vhq:vbitrate=1800 -oac copy -aid 128

이것은 보통 1.4GB 정도의 AVI 파일을 만든다.

Mplayer를 실행해서 추출한 AVI 파일을 재생한다.

mplayer temp.avi

AVI 파일 나누기

transcode는 비디오 스트림 처리에 있어 이상적이며, 우리가 하려는 일에 제격이다.

Transcode를 컴파일하기 위해 필요한 라이브러리는 많지 않다. 다만, 설정의 마지막에서 발견된 라이브러리가 무엇이고, 어떤 결과 바이너리를 만들 수 있는지에 대한 요약을 관심있게 보기 바란다. 예를 들면, 표1과 같다. transcode가 시스템에서 라이브러리를 발견하지 못한다면 경로를 직접 설정해서 재생해야 한다.

null
설정 요약 정보

transcode를 컴파일하고 설치했으면 생성한 temp.avi를 tcprobe 유틸리티로 실행한다.

tcprobe -i temp.avi

다음은 실행시에 나오는 결과이다.

$ tcprobe -i temp.avi

[tcprobe] RIFF data, AVI video

[avilib] V: 29.970 fps, codec=DIVX, frames=135989, width=720, height=480

[avilib] A: 48000 Hz, format=0x2000, bits=16, channels=2, bitrate=448 kbps,

[avilib] 9076 chunks, 254128000 bytes, CBR

[tcprobe] summary for temp.avi, (*) = not default, 0 = not detected

import frame size: -g 720x480 [720x576] (*)

frame rate: -f 29.970 [25.000] frc=4 (*)

audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000]

bitrate=448 kbps

length: 135989 frames, frame_time=33 msec, duration=1:15:37.504

Transcode는 AVI 파일을 크기에 맞게 분할하는 avisplit 유틸리티를 갖고 있다. 다음 예제는 temp.avi 파일을 640M 파일로 분할한다.

avisplit -s 640 -i temp.avi

여기서는 temp.avi-0000, temp.avi-0001 두 개의 파일이 생성된다. 각 파일의 시작과 끝 부분과 같이 파일의 일부를 재생해서 제대로 분할되었는지 확인하는 것이 좋다.

ISO 제작하기

이제, 셀프 부팅 무비 ISO를 생성할 준비가 되었다. 이 작업을 하기 위해서는 몇가지 유틸리티가 필요하지만 K3b를 사용할 수 있다.
첫번째는 그림1과 같이 K3b에서 필요한 유틸리티가 있는지 확인하는 것이다. 프로그램을 실행하고 Settings 메뉴에서 Configure 옵션을 클릭한다. 리스트에 있는 모든 유틸리티가 필요한 것은 아니지만, 처음에 언급한 필수 유틸리티는 있어야 한다.

그림1
그림1. K3b 설정 윈도우

그림2는 새 eMoviX 프로젝트 화면이다. 구울 매체에 적절한 eMoviX 프로젝트를 선택한다. DVD 라이터를 갖고 있으며, 레코딩 매체가 CD-R인 경우 CD 프로젝트를 선택해야 한다.

그림2
그림2. eMoviX 프로젝트 만들기

K3b를 사용하는 것은 매우 직관적이다. 프로그램을 실행하면 3개의 영역을 볼 수 있다. 오른 쪽 상단에 있는 창은 파일을 보여주며, 기본 위치는 홈 디렉터리이다. 이 창에서 AVI 파일을 네비게이트할 수 있다. 하단에 있는 창에 첫번째 ISO 이미지를 끌어다 놓는다. Burn 아이콘을 클릭하거나, Project -> Burn 메뉴를 선택하거나 Ctrl + B를 선택해서 CD 제작 윈도우(Burn WIndow)를 띄울 수 있다. 그림3과 같이 CD 제작 윈도우에서는 CD에 같이 저장할 정보를 채울 수 있으며, 영화를 어떻게 시작할 것이며, 끝났을 때 무엇을 할 것인지 선택할 수 있다. 모든 옵션을 보는데 수 분이면 충분하다.

그림3
그림3. K3b Burn Window

나는 영화가 끝난 다음에 CD를 꺼내거나 시스템을 다운 시키는 것을 원하기 때문에 volume description 부분을 제외하고는 그다지 손대지 않는다. 선택을 마쳤으면 Burn 버튼을 클릭해서 굽기를 시작한다.

다음 이미지에 대해서도 이 과정을 반복하면 영화 CD 제작은 완료된다.

CD 사용하기

첫번째 CD를 넣고 부트한다. CD의 isolinux OS가 모든 과정을 대신한다. CD의 BusyBox 쉘에서 부트 프로세스에 관여할 수도 있다.

주의사항

어떤 것도 없음!

팁&트릭

CD 주얼 케이스에 사용할 레이블로 영화에서 가져온 이미지를 사용하는 것을 좋아하기 때문에 Mplayer를 사용해서 스크린 캡쳐 이미지를 제작한다.

mplayer dvd:// -ss 00:10:00 -vo jpeg

이 예제는 영화의 10분 위치에서 초당 몇 개의 프레임을 캡쳐한다. 이렇게 하면 일련번호를 가진 JPEG 이미지 컬렉션을 갖게 된다. 충분한 이미지를 모았으면 Ctrl + C를 누른다.

이제, 그래픽 패키지를 가지고 이미지를 불러들인다. 나는 다음과 같은 명령으로 한번에 모든 파일을 읽어올 수 있는 imageMagick의 display를 사용한다.

display *.jpg


마음에 드는 이미지를 선택했으면 출력하고 종이를 접는다. 작업 완료.
TAG :
댓글 입력
자료실