Xcanvas타임머신 녹화물을 PC용 동영상으로 변환하는 법

 

LG의 Xcanvas 특징 대표적인 것이 타임머신 기능이다. 흔히 PVR(Personal Video Recording)이라 불리는 기능으로, 방송을 하드디스크에 편리하게 녹화해서 있게 해준다. LG 기능에 타임머신이란 브랜드를 붙인 이유는 단순히 녹화하고 재생하는데서 끝나지 않고 실시간으로 지나간 방송을 되돌려서 있도록 해주기 때문이다.

Xcanvas 타임머신 기능이 나온지도 벌써 몇 년이 지나서 지금은 3세대에 와 있다. 3세대에서는 녹화된 컨텐트를 편집할 있는 기능은 빠진 대신에 외부USB HDD 붙여서 내장HDD 용량 한계를 극복해서 백업을 받을 수도 있고, 외장 USB HDD 부터 직접 재생도 가능하도록 하는 기능이 추가되었다. 편집 기능이 빠진 것은 매우 아쉬운 점이지만 외장 HDD사용을 가능하게 한 것은 매우 환영할만한 발전으로, HD방송의 경우 10시간 남짓한 분량만 내장HDD 기록 가능하기 때문에 기존에는 보존하고 싶은 녹화물 때문에 점점 내장 HDD 차버리고 언젠가는 1~2시간 분량의 공간으로 녹화하고 지우는 것을 반복해야 하는 사태에 직면하던 아쉬움을 말끔히 해소해 준다고 있다. 실제로 PC에서 HDD용량을 늘려도 늘려도 동영상을 채우다 보면 용량 부족에 시달리게 된다는 점을 생각하면 합리적인 선택이라고 생각된다.

게다가 ( 알려져 있는 기능은 아니지만) 외장HDD 복사된 컨텐츠는 PC 가져가서 수도 있다. 그냥 가능한 것은 아니고, LG에서 제공하는 전용 재생프로그램(Windows Xcanvas player) 사용하면 된다. PC에서 곰플레이어나 KMPlayer같은 일반적인 동영상 플레이어를 사용할 없는 이유는 TV에서 녹화용으로 사용하는 HDD file system Linux EXT3 사용하기 때문에 그냥은 PC에서는 인식조차 되지 않기 때문이다. 참고로 Xcanvas에서 처음 USB HDD 연결하면 자체 file system으로 완전히 새로 formatting해버리는 과정이 실행되어 Xcanvas전용 HDD로 만들어 버린다. 따라서 Xcanvas HDD PC에서는 인식되지도 않고 그냥은 사용할 수도 없는 것이다.

그러나 앞서 언급된대로 file system 사용하는지가 알려져 있다면 얼마든지 PC에서 이를 추출하는 것도 가능하다. 이런 가능성을 내가 처음 알게 것은 "[[사용기]] LG 3세대 타임머신 녹화영상 PC 에서 시청 및 편집방법" 이란 글을 발견하면서였다. 여기서 이 글의 일부를 인용한다.

"Xcanvas player 설명서에서 뭔가 크게 손을 댄 것처럼 거창하게 읊고는 있지만, LG 타임머신은 리눅스 Ext3 파일시스템을 쓰고 있고, 이 시스템이 오픈소스지만 상당한 리눅스 프로그래머가 아니면 개조하기가 좀 어렵다는 것입니다. 단지 리눅스 ext3 파일 시스템을 읽을 수만 있다면 윈도 시스템에서도 쉽게 인식할 수 있을 것이라고 봤습니다. 그리고 그 예상은 정확히 일치했습니다. 예상은 했지만 너무 단순하네요. "


이제 PC에서 파일을 추출할 방법은 찾았으니 변환은 시간문제 ^^.



이 글에서는 Xcanvas에서 내장 HDD 녹화한 프로그램을 최종적으로 Windows PC에서 있는 AVI파일로 변환하는 과정을 다음과 같이 단계별로 설명하고자 한다.

STEP 1  TV에서 프로그램을 녹화한다.





STEP 2 내장 HDD 저장된 녹화물을 외장 HDD 복사한다. 참고로 외장HDD 40GB이상을 사용해야 한다. 최초 연결시 TV에서 자체 포맷(Linux EXT3)으로 포맷된다. 일단 포맷이 되면 담부터 자동으로 인식해서 연결했다 뗐다 자유롭게 사용할 있다.





STEP 3 PC EXT3파일 시스템 디스크를 읽을 있는 프로그램을 설치한다. Explore2fs 프로그램인데 http://linuxer.pe.kr/88 에서 다운받을 있다.



잠깐! Vista 사용자에게는 너무나 중요한 주의사항



지금부터 설명되는 모든 소프트웨어는 반드시 관리자 권한으로 실행해야 합니다. 로그인을 관리자 권한으로 했더라도 실행때마다 아래의 예와 같이 실행파일을 right click해서 관리자 권한 실행을 해줘야 합니다.


그 이유는 여기서 사용되는 프로그램들은 정식으로 설치된 것이 아니므로 Vista의 보안 메카니즘에 의해 그냥 실행하면 관리자권한이 부여되지 않기 때문입니다. 그래서 관리자 권한이 아닌 상태에서 실행된 프로그램은 아래에서 설명된 것 처럼 동작하지 않습니다. 매우 중요한 사항이니 명심하세요.



Explore2fs 구동하고, TV에서 복사된 컨텐츠를 담고 있는 HDD USB포트에 연결하면 HDD 내부를 들여다 있다. 저장된 영상물 각각이 별도의 폴더에 담겨 있는걸 있다. 어차피 지금부터는 무슨 폴더가 무슨 방송녹화물이었는지는 없으므로 STEP2에서 외장HDD로 복사할때 저장된 프로그램의 순서를 메모하거나 잘 외워둘 필요가 있다. 가장 최근 녹화물이 가장 높은 숫자의 폴더에 들어있다.



내가 원하는 컨텐츠가 담긴 폴더에 들어가면 아래와 같이 여러 개의 이름모를 파일들이 존재함을 있는데, 중에서 마지막이 STR 끝나는 파일이 동영상 파일이다.



- 00000003PIF
- 0000000300000000DAT
- 0000000300000001IDX
- 0000000300000001STR
- 0000000300000001THM

확장자는 없지만 MPEG2+AC3 bit-stream 담긴 동영상 파일이므로 이를 PC 복사한다. 확장자는 임의로 지정하거나 없어도 된다. 어차피 이 후의 변환 과정에서 사용하는데는 아무 문제없다.



STEP 3 나중에 동영상을 PC friendly하게 변환하는데는 유명한 VirtualDubMod 프로그램을 사용할 예정인데, VirtualDubMod가 지금 복사된 MPEG2파일을 (확장자와 상관없이) 바로 인식을 하지 못하므로 중간에 약간의 변환 과정이 필요하게 되는데, 이때 일차로 필요한 프로그램이 DGIndex 것이다. DGIndex 뭘하는 넘인가 궁금한 분들을 위해 소개글을 그대로 인용하자면

DGIndex, part of the DGMPGDec package, is primarily designed to create an index of an MPEG video stream, containing the location of each frame in the input stream, and some additional information about each frame. This index, or project file, is used by the companion Avisynth filter DGDecode to provide frame-accurate serving of the video via an Avisynth script. DGIndex is able to decode and index most MPEG1/2 streams including elementary streams, program streams, VOBs, VCDs, SVCDs, PVA files, and transport streams. Additional features include: video demuxing (m1v/m2v), audio demuxing (ac3, dts, aac, mpa, and lpcm), optimized iDCTs, luminance filtering, cropping, and more.

라고 되어 있는데 한마디로 나중의 비디오 처리의 선결작업으로 MPEG비디오 stream index란걸 만들어 주고 오디오는 demux시켜 주는 되시겠다. 쉽게 말하자면 비디오와 오디오를 분리해서 정리해 준다 정도로만 이해하면 되겠다.

hdtv-rip.zip

STEP3~5에서 사용되는 프로그램들 (DGIndex, VFAPIConv, VirtualDubMod)

DGIndex 실행시키고 아까 저장해논 MPEG파일을 Open하면 이런 에러가 뜨는데 무시해 버린다.




다음 과정으로 Stream 메뉴에서 Detect PIDs : RAW 선택한다.





Detect PIDs:Raw 메뉴를 실행하면 다음과 같은 창이 뜨고, 여기서 어떤 비디오와 오디오 블록을 사용할지를 각각 지정한다. PID란 Program ID의 약자이고, 어떤 정보가 담겨 있는지에 대한 목록같은 거라고 할 수 있다. 프로그램에 따라서는 비디오나 오디오 외에 다른 스트림도 담겨 있을 수 있고, 비디오/오디오도 여러개가 담겨 있을 수 있으므로 각각을 지정해서 분리해 주는 작업이다.  0x11: MPEG Video를 선택한 후 Set Video를 클릭하고, 같은 방법으로 0x14: Private Stream 1 (AC3/DTS Audio)를 선택한 후 Set Audio를 클릭한 다음, 마지막으로 Done을 클릭한다. 나오는 항목의 표시내용은 컨텐츠에 따라 조금씩 다를 수 있으나 비디오는 비디오로 set하고 오디오는 audio로 set하면 된다. 많은 경우, 오디오가 2개가 나오는 경우도 있다. 이 경우는 대개 메인에 해당하는 것을 선택하면 된다.







최종적으로 File메뉴에서 Save Project 작업을 완료하면 d2v와 ac3 확장자를 가진 파일이 생성된다. D2v에는 video 관한 정보가 담기고, ac3에는 audio stream 담기게 된다.

STEP 4 다음 스텝은 준비된 비디오 인덱스정보를 이용하여 VirtualDubMod 인식할 있는 형태로 변환해 주는 과정이다. 이를 위해 VFAPIConv라는 프로그램이 동원된다. 프로그램은 앞단계에서 저장한 d2v파일을 이용해 가상의 AVI 파일을 만든다. 동작은 간단하다. 메뉴에서 Add file을 선택해서 step3에서 만든 d2v파일을 열고 Convert 명령만 주면 끝이다.



이 작업은 순식간에 이루어지며, 실제로 만들어진 AVI파일은 매우 작은 사이즈이다. 왜냐하면 실제 데이터는 최초의 TS파일이 그대로 가지고 있고, AVI파일은 VirtualDubMod 작업을 처리하기 위한 매개체, 즉 AVI포맷 인식 용도로만 작동할 뿐이기 때문이다.이미 오디오 데이터는 이미 추출되어 있으므로 과정에서는 오디오에 대해서는 아무런 조치를 하지 않는다.

+ Recent posts