NDSL용 동영상 인코딩하기!
얼마 후 비행기를 장시간 탈 일이 있는데, 비행기 안에서 시간 떼울 무언가가 필요하다는 생각에 뒤늦게 NDSL과 DSTT, 무지개 색 케이스를 구입했습니다.
저 케이스가 전 아주 맘에 드는데, 누나는 안이쁘다고 난리네요. -_-a 뭐 어때요 내껀데 내 맘에 들면 되지! 위 사진에 있는 usb 디바이스는 micro SD 리더기입니다. usb연결 단자를 감출 수도 있고, 사은품으로 1GB짜리 micro SD 카드도 받았기 때문에 휴대용 usb 메모리로 사용해도 나쁘지 않을 것 같네요.
DSTT에 문쉘을 깔고 동영상을 넣어보았습니다. 어라? AVI 파일을 바로 재생할 수 있는게 아니네요. NDSL에서 동영상을 시청하려면 dpg라는 포멧으로 변환을 해야한다고 합니다.
하지만 곰 인코더나 바닥 등으로는 dpg 포멧으로 변환이 불가능했습니다. 정보의 바다 인터넷을 뒤져보았지만 그리 맘에 드는 솔루션을 찾을 수는 없었습니다. 여러 프로그램을 사용하여 인코딩을 하면 어찌어찌 제대로 변환을 할 수 있었지만 사용법이 복잡하고, 손이 너무 많이가는 관계로 자주 사용하기는 조금 그렇더라구요.
그러던 중 가뭄 속의 단비와 같은 페이지를 찾아냈습니다.
HOWTO: Converting your movies to DPG format for moonshell on the Nintendo DS
dpg 포멧은 mpeg1으로 인코딩된 비디오와 mpeg2로 인코딩된 오디오로 구성되는데, mencoder를 이용하여 비디오를 인코딩하고 mpeg_stat을 이용하여 오디오를 인코딩한 뒤 헤더를 붙여주는 과정을 dpgconv 스크립트로 간단히 처리할 수 있습니다.
mencoder는 macports를 사용하여 간단히 설치할 수 있었고, mpeg_stat은 다음 명령을 통해 설치할 수 있었습니다.
tar vxfz mpeg_stat-2.2b-src.tar.gz cd mpeg_stat make sudo cp mpeg_stat /opt/local/bin/ sudo cp mpeg_stat.1 /opt/local/bin/ sudo chmod 755 /opt/local/bin/mpeg_stat |
dpgconv의 경우 자막이 있다면 자동으로 자막을 영상에 포함시켜주지만 smi 자막은 자동으로 찾아주질 않네요. 이런 걸 보고 지나칠 수 없죠. 아래 코드 중 마지막 두 줄이 제가 추가한 부분입니다.
elif os.path.exists ( basename + ".ssa" ): v_cmd = " -sub \"" + basename + ".ssa" + "\" " + v_cmd elif os.path.exists ( basename + ".smi" ): v_cmd = " -sub \"" + basename + ".smi" + "\" " + v_cmd |
근데 인코딩을 해놓고 보니 영상에 자막이 입혀져있지 않습니다. 뭔가 좀 이상해서 여러가지 삽질을 해보다가 mencoder에 freetype이 링크되어 있지 않은걸 발견했습니다. 자막을 입히려면 mencoder가 freetype을 지원해야하거든요. Portfile을 열어보니 osd 옵션이 있어야지만 freetype과 링크되도록 되어있네요.
sudo port uninstall mplayer sudo port install mplayer +osd |
위 명령을 통해서 mencoder를 새로 설치해주고 나니 영상에 자막이 제대로 추가되었습니다. 휴~ 삽질은 여기까지…
하튼 잘 갖고 놀고 있습니다. 만족스러워요. 캬캬캬!
덧: SNEmulDS를 이용하면 SFC 게임들도 즐길 수 있다고 합니다. 버튼 수나 배열도 똑같다보니 플레이하는데 이질감도 없을 것 같네요.
덧2: 나중에 심심하면 mencoder, ffmpeg 등을 이용하여 dpg를 만들어주는 프로그램을 제작해볼까 싶네요. 관련된 정보는 위키피디아 NDs-mPeG 페이지에 자세히 나와있던데…
Related Posts
This entry was posted by 정태영 on Wednesday, March 4th, 2009 at 8:33 PM and is taged under buy, DSTT, freetype, game, macports, mencoder, moonshell, NDSL, 지름. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
전 얼마전 레이튼교수와이상한마을을 클리어 하고
호텔더스크의미스테리를 하고 있어요
잠들기 전에 잠시잠시 하는 재미가 쏠쏠하네요 ^^