2010년 12월 13일 월요일

아이폰용 동영상 변환기 v2.x 대대적 업데이트

by BLUEnLIVE | 2010/12/02 00:24

아이폰 동영상 한방에 변환하는 툴: 완벽 버전 by BLUEnLIVE | 2010/11/15 01:21 아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을...


아이폰용 동영상 변환기(이하 VCi로 칭함)에 대해 정말 많은 분들께서 피드백을 보내주셨다.
개인적으로 혼자 쓰려고 만든 프로그램에 너무나 많은 분들께서 관심을 보여주신 게 당황스러우면서 고마웠다.

그동안 받은 요청을 포함하며 상당히 많은 부분에 대해 대대적인 업데이트를 단행했다.

아무리 업데이트 되어도, 인터페이스는 언제나 불변!


지난 포스팅에 댓글을 통해 요청받고, 수정/공지한 내용 및 자체적으로 수정한 내용들을 전부 정리했다.



VCi의 기능 및 특징은 아래와 같다.

1. 변환을 원하는 파일을 비디오 파일 목록에 떨어뜨린 뒤 변환 버튼을 클릭하면 알아서 변환함
   인식하는 파일 포맷은 AVI, MKV, MP4, MOV, OGM, FLV

2. 저장 위치는 기본적으로 원본 폴더이며, 저장할 폴더를 지정할 수 있음

3. 결과 파일은 원본 파일명 앞에 [VCi]를 붙임
   필요시 추가로 싱크를 보정하며, 결과물은 원본 파일명 앞에 [VCi-DC]를 붙임

4. 비디오 스트림은 원본에서 추출하며, 오디오 스트림은 추출한 뒤 AAC-LC로 변환해서 다시 합침
   오디오가 AAC-LC일 경우 재인코딩은 옵션 선택에 따라 안할 수도 있음

5. 아이폰4 재생가능 여부 관련 체크박스가 있는데, 체크하면 스펙에 명시된 규격을 넘어설 때 처리하지 않음
   기본값은 체크이며, 체크를 권장함

6. 5번과 무관하게 비디오 포맷을 확인해서 H.264MPEG-4 Visual이 아니면 처리하지 않음

7. 플래쉬 비디오(flv)도 변환하는데, 역시 비디오 포맷이 5, 6번의 범위가 아니면 처리하지 않음
   단, flv 추출 프로그램은 .NET FW 2.0 기반으로 되어있기 때문에 flv를 변환하려면 반드시 FW을 설치해야 함

8. 원본 파일과 같은 이름의 오디오/자막 파일이 같은 폴더에 있으면 그 파일을 사용함

9. 내부 오디오가 여러개일 때는 사용할 오디오의 우선순위를 국가코드로 지정할 수 있음

10. 내부/외부 오디오가 여러 개이며, 우선순위를 지정하지 않으면 다음 순서로 하나를 선택함
   AAC → WAV → DTS → AC3 → MP3 → MP2 → OGG (합치기만 하면 되는 오디오 → raw 오디오 → 음질 순)

11. 내부 자막은 SRT, ASS(SSA)를 인식하며, 있는 그대로 사용하고, 외부 자막은 SMI → SRT 순으로 사용함
   다중 언어 SMI는 모든 자막을 다 변환해서 사용하며, KRCC/ENCC/EGCC/JNCC를 각국어로 인식함
   원본 자막 파일 형식은 ANSI, 유니코드-BOM, 유니코드 UTF-8를 지원하며 알아서 인식해서 완벽히 변환
   ※ 내부적으로 유니코드만 사용하기 때문에 변환하지 못하는 글자는 없으며 최대한 오류를 보정함

12. 원본의 내부 자막이 여러 개이거나 SMI가 다중언어로 구성된 경우는 모든 국가의 자막을 변환
   외부자막이 SRT인 경우는 다중자막 적용 불가하고, 외부자막으로는 ASS/SSA를 지원하지 않음

13. 출력되는 자막의 크기는 18/24/36/48포인트를 사용가능한데, 이는 아이패드를 위한 것임
   하지만, 아이폰/아이패드의 퀵타임 재생기가 자막의 크기를 인식하지 않기 때문에 아직은 의미 없음

14. 원본 비디오의 delay 값을 인식하고, 이를 적용해서 오디오/비디오 싱크를 맞춤.
   또한, 추가적으로 원본과 생성본의 비디오 길이를 비교해서 필요시 싱크를 한번 더 맞춤.

15. 아이폰4 뿐 아니라, 아이폰 3 계열, 아이패드 모두 사용 가능하며, 변환 후 재생이 안 되면 더 이상은 어쩔 수 없음

16. 선택한 옵션은 모두 레지스트리에 저장되며, 저장 시점은 변환을 시작했을 때와 저장 버튼을 클릭했을 때임.
   즉, 옵션을 선택하고 프로그램을 종료하는 경우는 저장하지 않음
   저장위치는 \\HKEY_CURRENT_USER\Software\BLUEnLIVE\Video Converter for iPhone

17. VCi는 다양한 미디어 관련 프리웨어의 프론트엔드이며, 직접 변환에 개입하는 것은 자막이 유일함
   VCi에서 사용하는 프리웨어 8종은 다음과 같음
   ffmpeg, MKV Extract, Media Info, MP4Box, FLV Extract, Nero AAC Encoder, OGM Demuxer, normalize

프로그램은 아래 링크에서 다운받을 수 있다.


덧1. 막상 정리하고 보니, 기능이 정말 많이 추가되었다. 처음 계획한 건 이렇게 많은 기능이 아니었는데… ㅎㅎ

덧2. 아이콘을 훨씬 평범(?)한 것으로 바꿨다. ㅋㅋ


2010.12.7: 2.0a 업데이트
 - 자막 글꼴의 크기를 18, 24, 36, 48pt로 설정 가능
 - StatusBar를 고정폭 글꼴로 변경

2010.12.11: 2.1 업데이트
 - 아이콘 또 변경
 - 동영상 정보를 조금 더 상세히 출력
 - mkv 내장 자막 변환시 자막 종류를 확인하도록 수정
 - mkv 내장 자막 중 srt 외에 ASS(SSA)도 변환하도록 수정 / 외부 ASS/SSA는 처리하지 않음

ASS 포맷의 내장 스페인어 자막도 완벽하게 변환함 v^.^v


 - baseline 지정 기능 제거 (불필요)
 - 재생가능 비디오 규격 확인을 정확하게 하고, 재생 불가능 이유 표시하도록 수정 (재생가능 비디오 규격 확인 권장함)
 - 비디오 fps가 30 이하인지 확인하는 옵션을 별도로 분리 (아이튠즈는 30fps 이상도 올릴 수 있음)
 - 버그 수정: no sub를 no audio로 표시했던 버그 수정
 - 버그 수정: 일부 H.264를 재생되지 못하게 profile을 잘못 지정했던 버그 수정

2010.12.13: 2.2 업데이트
 - AAC 자동 인코딩 옵션의 기본값을 off로 변경
 - 정보창의 글꼴 크기 줄이고, 내용 정리
 - 버그 수정: 가끔 실행 오류 발생하던 현상을 수정.
   임시 폴더 지정의 오류로 수시로 임시 폴더를 확인/수정하도록 변경

2010.12.13: 2.3 업데이트
 - 실행권한 상승으로 Windows 7에서 보다 안정적인 동작 보장
 - MPEG4 비디오 코덱 중 구형 코덱인 DIV3/DIV4/DIV5은 처리하지 않도록 수정

2010년 12월 12일 일요일

[투어리스트]: 007을 너무 의식한 거 아냐?


[투어리스트]는 알려진 대로 [안소니 짐머]의 리메이크 영화다.
어리버리한 남자 관광객이 무서운(?) 여자에게 유혹을 받았다가 제대로 관광당하는 영화...

액션 쪽에서 보면 뭔가 모자라보였지만, 로맨스 중심의 가벼운 데이트 무비로는 적당해 보였다. 로맨틱 스릴러?
(특히, 같이 가신 마누라님께선 조니 뎁 외모에 대해서 계속 극찬을...)

이 영화는 원작인 [안소니 짐머]보단 여러모로 007 시리즈를 의식한 듯 하다.


1. 베니스에서 보트타는 주인공들


이 장면 정말 멋지지 않은가?
그런데, 이 장면은 여러모로 [위기일발]의 한 장면을 생각나게 했다.


베니스에서 여유롭게 보트를 타는 주인공 커플이다. 그렇다. 베니스다!


졸리 여사님이 베니스에서 혼자 도도히 보트를 몰고 가는 장면 역시 어디선가 보던 거다.


그렇다! [카지노 로얄]에서 에바 그린이 베니스에서 도도히 보트를 몰고 다녔다!


남자 주인공이 베니스에서 위태롭게 보트를 타는 장면은?


[문레이커]에서 제임스 본드가 위태롭게 보트를 타고 다녔다.
정확히는 추진장치를 장착한 곤돌라지만...


2. 지붕 위를 열심히 뛰어다니는 주인공?



열심히 지붕 위를 뛰어다니는 주인공이라면 역시 [본 얼티메이텀]의 제이슨 본이다.
조니 뎁이 옥상 위를 느릿느릿 걸어서 도망가는 장면은 약간은 [본 얼티메이텀]을 연상시켰다.


그런데, [본 얼티메이텀]의 지붕 씬은 [리빙데이라이트]에서 상당 부분 차용한 장면들이다.
하지만, 속도감은 비교할 바가 못된다. [본 얼티메이텀]의 장면들은 현기증이 날 지경이다.

그래서, [투어리스트]의 옥상 추격씬은 [리빙데이라이트]에 훨씬 가까워보였다.


3. 배우들은?


존스 경감 역을 맡은 배우는 다름 아닌 4대 제임스 본드 티모시 달튼이다.

Tough James Bond


그런데, 중령에서 경감으로 바뀌었으면 계급이 오히려 낮아진 걸까? (뭐?)


쇼 역을 맡은 배우는 스티븐 베르코프다.

[옥토퍼시]에서 "나쁜" 소련군으로 출연해 "착한" 소련군에게 사살당함


[투어리스트]에서 쇼에 대해 러시아 인들과 엮여있어 러시아인 같지만, 영국인이라는 설명이 나온다.
이건 배우 베르코프와 영화 [옥토퍼시]에서 맡은 캐릭터 올라프 장군에 대한 설명이다.

그는 정말 영국 배우이다. 그것도 런던 출생.
하지만, 억양이 강하고 [옥토퍼시]에선 소련군으로 출연해 러시아인이라는 인상을 준는 점을 설명한 것이다.


4. 그 외...


두 주인공이 춤추는 장면은 [트루 라이즈]의 탱고 장면을 연상시킨다.
뭐, 이젠 너무 많은 영화에서 써먹은 장면이긴 하지만...

그리고...

You're a part of a plan.

이 대사 어쩐지 [다크 나이트]의

It's all part of the plan.

을 연상시킨다.

2010년 12월 9일 목요일

아이튠즈로 아이폰에 올릴 수 있는 비디오 검토 결과

iPhone4에서 재생가능한 비디오 포맷… (정말?)


애플 홈페이지에서 공식적으로 얘기하는 재생가능한 최대 비디오 포맷은 아래와 같다.

- H.264: 720p, 30fps, Main Profile level 3.1, 오디오는 AAC-LC, 160Kbps, 48kHz, 스테레오, .mp4
- MPEG-4: 2.5Mbps, 640x480, 30fps, Simple Profile, 오디오는 AAC-LC, 160Kbps, 48kHz, 스테레오, .mp4
- MJPEG: 35Mbps, 1280x720, 30fps, 오디오는 ulaw, PCM, 스테레오, .avi

그런데, 실제로 동영상을 올려보면 조건을 만족하지 않더라도 올라가고, 만족하는 것 같은데 안 올라가는 경우도 있다.
MJPEG는 좀 특이한 경우라 옆으로 빼놓고, .mp4 파일에 저장하는  H.264/MPEG-4에 대해 여러모로 확인해봤다.

오디오는 AAC-LC, 160Kbps, 48kHz, 스테레오 규칙을 지켜야 한다.
그런데, 올라가는 비디오는 좀 다르다.

- H.264: 720p, 30fps, High Profile level 3.1
- MPEG-4: 2.5Mbps, 480p, 30fps, Advanced Simple Profile

H.264의 경우 Main Profile 뿐만 아니라 High Profile까지 올라간다.
재미있는 건 진짜 프로파일이 High Profile일 필요는 없다는 것.
즉, 프로파일이 그 이상이더라도 .mp4 파일을 만들 때 옵션을 High@3.1로 지정만 해주면 업로드 및 재생이 가능하다.
게다가, fps는 확인을 하지 않는다. 무려 60fps까지도 이상 없이 올라간다.

MPEG-4는 일단 SP 뿐만 아니라 ASP까지 재생 가능[footnote]좀 웃긴 것이 대표적인 .mp4 제작도구인 mp4box에서는 SP 비디오를 ASP로 강제로 지정해버린다는 것이다[/footnote]하다.
그리고, 가로 해상도는 확인하지 않는다. 세로 해상도만 480 이하인지 확인한다.
마지막으로, (그리고 의외로) Bit Rate가 중요하다. 비디오의 BR이 2.5Mbps 이하인 경우만 올릴 수 있다.
이건 스펙에 명시되어 있는 그대로인데, 잘 신경을 쓰지 않는 경우가 많은 것 같다.

웃긴 건 이 이상 규격의 비디오를 수단과 방법을 가리지 않고 올리면 대부분 재생이 가능하다는 것이다.
OPlayer로 올려서 퀵타임으로 재생시키거나 CopyTransManager 등으로 올리기만 하면 무난한 재생이 가능하다.

2010년 12월 7일 화요일

Syntax Highlighter 3용 srt 자막 브러쉬 공개

Syntax Highlighter에서 .SMI 자막은 별도의 브러쉬가 필요하지 않다.
XML/HTML 브러쉬를 적용하면 충분히 예쁘게 보여줄 수 있다.

<SYNC Start=500><P Class=KRCC>
자막제작: BLUEnLIVE< br>
<font color=yellow>배포처: http://zoc.kr</font>
<SYNC Start=7500><P Class=KRCC>&nbsp;

하지만, (내가 선호하는) .srt는 적절한 브러쉬가 없다.
물론, XML/HTML 브러쉬를 적용하면 약간 비슷하게 보여줄 수는 있지만, 2% 부족하다.

다름아닌, 시간을 하일라이팅하지 않는다는 한계가 있다.

1
00:00:00,500 --> 00:00:07,500
자막제작: BLUEnLIVE
<font color=yellow>배포처: http://zoc.kr</font>

시간을 제대로 표시해줄 수 있는 .srt 전용 브러쉬를 만들었다.

1
00:00:00,500 --> 00:00:07,500
자막제작: BLUEnLIVE
<font color=yellow>배포처: http://zoc.kr</font>

브러쉬는 아래 링크에서 다운받을 수 있으며,


사용할 때는 아래와 같이 브러쉬를 지정하면 된다.

<pre class="brush:srt;">


2010년 12월 5일 일요일

TS/MTS → MKV 한방에 변환하기

많이 보던 인터페이스. VCi를 최대한 재활용했음.


파일 형식 중에 .ts(또는 .mts)라는 형식이 있다. (Transport Stream)
잡음이 많은 환경을 고려해서 설계된 컨테이너 포맷이다.

온라인 방송에서도 널리 쓰이고, DSLR에서도 가끔 쓰이는 포맷인데, 일반 PC에서 쓰기엔 사소한 문제가 있다.
오류를 방지하기 위해 내부적으로 계속 시간 코드를 삽입해놓았는데, 문제는 파일을 잘라붙여 편집한 경우, 이 시간 코드가 따라다닐 때가 있다는 것이다.
예컨데, 30분짜리 .ts 동영상이 있는데, 여기서 10분~20분의 10분 분량을 잘라낸다고 하자.

가운데 빨간색 영역을 잘라내면…


그러면, 새롭게 생성되는 .ts 파일은 20분짜리가 된다. (30-10 = 20)
그런데, 막상 새롭게 생성되는 .ts 파일을 재생해보면 20분짜리가 아니라 30분짜리라는 정보가 나온다.
그리고, 재생을 해보면 10분~20분이라는 영역은 없다고 나온다.

이런 식으로 나온다. 편집 도구 좀 잘 만드시지… 쩝


이런 문제(?)를 간편하게 해결하기 위해 .ts 파일을 재압축 없이 .mkv 파일로 변환해주는 툴을 하나 만들었다.
(이하 본 프로그램은 TS2MKV로 부름)

이 프로그램의 기능은 별 거 없다. mplayer를 이용해서 ts의 비디오/오디오 raw data를 추출하고 다시 합치는 것.
그리고, 이 과정에서 A/V 딜레이 정보를 확인해서 맞춰주는 것 뿐이다.

예컨데, 아래와 같이, 56분 29초짜리라고 정보가 표시되는 .ts 파일을…


TS2MKV로 변환하면 아래와 같이 16분 1초라고 정상적으로 표시된다.
또한, 아직까지는 .ts 재생필터에 비해 .mkv의 재생필터가 더 빠릿빠릿하게 동작한다는 장점도 얻을 수 있다.


이 프로그램은 아래 링크에서 다운받을 수 있다.



덧1. 이 프로그램을 만들면서 이해가 되지 않는 상황을 하나 발견했다.
H.264의 raw 데이터에 mkv/mp4 컨테이너를 씌우면 2배 느리게 재생되는 현상이 종종 발생했다.
즉, 30fps라면 강제로 60fps로 지정해야 정상재생이 되는 것이다.

그런 현상이 발생하지 않을 때도 있어 정확한 원인은 찾지 못했고, FPS에 관련된 옵션을 추가했다.
 - FPS 2배로 늘이기: FPS를 2배로 늘임. 즉, 2배 빠르게 재생됨.
 - FPS를 지능적으로 보정: 생성된 mkv 파일과 별도로 프레임 수를 강제로 조정한 mkv 파일을 하나 더 생성함.

참고로, 일부 문제 있는 파일을 DGAVCIndex로 읽어보면 정상적인 정보가 나온다. 어쩔…

덧2. 이 프로그램은 카라 팬인 친구가 카라 동영상 관련 부탁을 해서 만든 것이다.
그래서, 이 프로그램의 아이콘은 카라다. ㅋㅋㅋ

덧3. 친구야! 술 사라! 공짜가 젤 비싸다. ㅋㅋㅋ


2010년 12월 2일 목요일

멀고도 험했던 코딩용 글꼴 선택기

개발용 글꼴을 선택하는 것은 결코 쉽지가 않다.

일단, 고정폭 글꼴 중에 선택하는 것이 기본이다.
물론, 숫자 0과 알파벳 O가 쉽게 구분되는가, 대문자 I, 소문자 l, 숫자 1이 쉽게 구분되는가 등도 중요 기준이다.
게다가, 한글이 제대로 표시되는가도 확인해야 되고, 한자, 유럽어 등의 표시도 확인해야 된다.

보통 잘 만들어진 개발용 글꼴에 한글 글꼴을 fontlink 기능을 이용해서 연결하는 것이 일반적이었다.
하지만, 이 바닥에 혜성처럼 등장한 강자가 바로 (내가 굉장히 싫어하는) 네이버나눔고딕코딩이었다.

나눔고딕코딩을 사용하면 일단 fontlink라는 기능에 대해 몰라도 되는 것 같다. 얼마나 대단한가?

하지만, 나눔고딕코딩은 결코 만능이 아니다.
단지, 한글과 영문자가 나름 예쁘게 만들어져 있을 뿐 한자나 유럽어 등이 하나도 들어있지 않은 것이다.
그래놓고선, 개발용 글꼴이라니… 역시 네이버라는 생각이 들었다.

각설하고, 내가 좌충우돌 끝에 선택한 글꼴은 Consolas + 굴림체 + MS UI Gothic + PMingLiU + SimSun.

깔끔하고 예쁜 글꼴 + 한자/유럽어 칼지원


글꼴 자체가 예쁜 것은 물론이고, 필요로 하는 글꼴들이 모두 윈도우 XP에 내장되어 있다는 것이 가장 큰 장점이었다.
유일하게 추가로 설치해야 되는 Consolas는 MS 홈페이지에서 다운받을 수 있다.


차선책으로 선택한 것은 나눔고딕코딩 + Vera Sans Mono + PMingLiU + SimSun + 굴림체 + MS UI Gothic.


나눔고딕코딩에서 지원하지 못하는 예쁜 유럽언어를 Vera Sans Mono를 통해 표시하는 것이다.
나눔고딕코딩과 Vera Sans Mono를 다운받아야 하는 번거로움이 있고, 글꼴의 크기를 키우면 크기가 미묘하게 맞지 않는 단점은 있지만, 전체적으론 준수해보인다.


덧. 위에서 띄운 창을 나눔고딕코딩으로 설정하면 아래와 같다.
     이게 뭐니, 이게? 응?

유럽어를 다 날려버리는 무식한 글꼴. 결국 아스키+한글 뿐.


아이폰용 동영상 한방에 변환하는 툴: 초 완벽 버전 업뎃

새버전인 2.0으로 업데이트 했습니다. 새버전을 이용해주시기 바랍니다.

by BLUEnLIVE | 2010/11/15 01:21

아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을 보기 위해서는 재압축을 해야 된다는 것이다. 이 점은 이미 없어져버린 진정한 스...


앞에 포스팅한 아이폰 용으로 한방에 변환하는 툴에서 사소한 부분을 수정하면서 새롭게 포스팅한다.
앞의 포스팅은 너무나 기능 구현에만 집중한 나머지 사용법 설명이 부족한 면이 있었다.

프로그램을 만드는 과정에서의 쓸데 없는 자랑은 최대한 배제하고, 사용법 위주로 포스팅 하겠다.

내가 만드는 프로그램의 틀은 거의 이런 식이라 이제 굉장히 식상함. ㅎㅎ


이 프로그램의 제목은 VCi: Video Converter for iPhone으로 아이폰을 전면에 내세우는 변환기이다.
하지만, 이 프로그램은 실제로 거의[footnote]거의 라는 표현을 쓴 이유는 자막은 직접 변환하기 때문이다. 자막은 정말로 거의 완벽하게 변환한다.[/footnote] 아무런 변환도 하지 않으며 각종 CLI 툴의 프론트엔드만공한다.

이 프로그램은 이미 잘 알려진 @snoopybox 님의 아이폰 4 AVI, MKV 동영상을 MP4로 한방에 변환하기에서 많은 아이디어를 빌렸으며, 구현 과정에서도 많은 참고를 했다.

이 프로그램의 기능 및 특성은 아래와 같다.

1. 변환을 원하는 파일을 비디오 파일 목록에 떨어뜨린 뒤 변환 버튼을 클릭하면 알아서 변환함

2. 저장 위치는 원본 폴더이며, 결과 파일은 원본 파일명 앞에 [VCi]를 붙임
   필요시 추가로 싱크를 보정하며, 결과물은 원본 파일명 앞에 [VCi-DC]를 붙임

3. 비디오 스트림은 원본에서 추출하며, 오디오 스트림은 추출한 뒤 AAC(LC)로 변환해서 다시 합침

4. 원본 파일과 같은 이름의 오디오/자막 파일이 같은 폴더에 있으면 그 파일을 사용함

5. 내부/외부 오디오가 여러 개일 때는 AAC → WAV → DTS → AC3 → MP3 → MP2 순으로 하나만 사용함
    이 순서의 의미는 합치기만 하면 되는 오디오raw 오디오음질 좋은 순서

6. 내부 자막은 전혀 사용하지 않으며, 외부 자막의 순서는 SMI → SRT 순임
    SMI 파일의 모든 자막을 다 변환해서 사용하며, KRCC는 한국어, EGCC/ENCC는 영어 JNCC는 일본어로 인식함
   원본 자막 파일 형식은 ANSI, 유니코드-BOM, 유니코드 UTF-8를 지원하며 알아서 인식해서 완벽히 변환함
   ※ 1.0에서는 대문자만 인식했으나, 1.1에서 소문자(krcc 등)도 인식하도록 수정

7. 저장 위치를 따로 지정하는 기능은 없음. 스누피 님 프로그램에 대한 오마쥬임

8. 아이폰4 해상도 관련된 체크박스가 있는데, 체크하면 스펙에 명시된 해상도를 넘어설 때 처리하지 않음
   디폴트 값은 언체크인데, 해상도를 넘어서도 재생하는 경우가 종종 있기 때문임

9. 7번의 체크박스와 무관하게 비디오 포맷을 확인해서 H.264와 MPEG-4 Visual이 아니면 처리하지 않음

10. 플래쉬 비디오(flv)도 변환하는데, 역시 비디오 포맷이 8번의 범위가 아니면 처리하지 않음
   단, flv 추출 프로그램은 .NET FW 2.0 기반으로 되어있기 때문에 flv를 변환하려면 반드시 FW을 설치해야 함

11. 원본 비디오의 delay 값을 인식하고, 이를 적용해서 오디오/비디오 싱크를 맞춤.
   또한, 추가적으로 원본과 생성본의 비디오 길이를 비교해서 필요시 싱크를 한번 더 맞춤.
   (뭔가 좀 어려운데, 별도로 포스팅할 예정임)

12. 아이폰4 뿐 아니라, 아이폰 3 계열, 아이패드 모두 사용 가능하며, 변환 후 재생이 안 되면 해상도 문제라 어쩔 수 없음

새 버전은 아래 링크에서 다운받을 수 있다.


덧. 아주 아주 사소한 버그가 하나 발견되어 1.1b로 패치함. ㅡ.ㅡ;



2010.11.18: 1.2 업데이트
   - AVI에 저장된 H.264 동영상 변환불가 문제 수정
   - [VCi-DC] 버전 생성시 딜레이 계산을 조금 더 정확하게 수정
   - 원본 비디오의 크기가 4GB를 넘으면 변환을 사전에 중단
   - 조금 더 안정적인 MP4Box 사용

2010.11.18: 1.2b 업데이트
   - 4GB 이상 파일의 처리를 체크박스로 선택 가능하도록 수정, 기본값은 크기 제한 없음
      ※ 확인 결과 최신 MP4Box는 4GB 이상 파일도 이상 없이 처리함
   - ffmpeg.exe를 최신버전으로 교체

2010.11.20: 1.3 업데이트
   - SMI → SRT 변환시 다중 자막에 대한 처리 보강.
     <SYNC start=00><P class=KRCC>한글<P class=ENCC>영어 구조도 정상적으로 처리

2010.11.21: 1.4 업데이트
   - 지원 확장자에 .mov 추가 (mp4 포맷의 mov 파일만 처리 가능)
   - 내부적으로 자막 처리에 UTF-8 대신 Signed UTF-8을 사용. MKV 포맷에 포함된 자막을 그대로 사용 가능
   - MKV 파일 변환시 포함된 자막을 모두 그대로 포함시킴

엄청나게 많은 자막의 위엄… ㄷㄷㄷ


   - AAC 오디오를 강제로 재인코딩하는 옵션 추가 (이전 버전은 무조건 재인코딩 없이 삽입)
   - AV 싱크 재조정 파일(VCi-DC) 생성 여부를 옵션으로 지정
   - 버그 수정: mp4에 포함된 H.264 비디오 프로파일을 High@3.1로 지정하도록 수정 (이전 버전에서는 mp4만 누락)

2010.11.22: 1.4a 업데이트
   - VCi-DC 생성이 필요 없다고 판단되면 생성하지 않음 (비디오 딜레이 값의 차이가 100ms 이하 등)
   - VCi-DC 생성시 VCi에 덮어쓰기 옵션 추가 (현실적으로 비추. 소요시간이 똑같음)

2010.11.25: 1.5 업데이트
   - 오디오 선택 기능 추가: 지정된 언어와 같은 언어의 오디오가 있으면 그 오디오 사용
   - .\tools 폴더 존재 여부 확인. 폴더가 없으면 실행되지 않음
   - 파일 목록에서 delete 키를 눌러 목록 삭제 가능 (이 기능을 왜 이제야 구현했지? OTL)

2010.11.28: 1.7 업데이트
   - iOS 4.2에서 자막의 속성이 제대로 나오도록 수정 (그렇다! 이 골치아픈 문제를 해결한 것이다!)
      : 이전 버전으로 변환해서 <font> 태그가 그냥 출력되는 동영상은 새 버전으로 재인코딩[footnote]물론, 오디오를 재인코딩할 필요는 없다. 따라서, 파일 크기에 따라 다르지만 5분 이내에 수정 가능하다.[/footnote]하면 한방에 수정해줌
   - Status Bar를 사용하도록 인터페이스 수정
   - 변환중인 파일의 비디오/오디오/자막 정보 출력

2010.11.28: 1.7a 업데이트
   - <font color="fff76a"> 처럼 #가 누락된 경우도 적절히 처리하도록 수정.
      단, HTML 포맷 중 rgb(255,247,106) 형식은 지원하지 않음. (과연 필요할까?)

2010.12.1: 1.7b 업데이트
   - <font color="#fff76a"><br>어쩌고 처럼 행에 내용은 없이 컬러코드만 있으면 엔터가 들어가지 않도록 수정

2010년 11월 30일 화요일

JW Player 3.1c 재업데이트

그동안 JWPlayer가 5.3으로 업데이트되었다.
플래쉬와 더불어 HTML5를 지원하는 등 많은 변화가 있었다.

설치는 아래 파일을 다운받아 압축을 푼 뒤에 스킨 업로드를 통해 업로드 하고 나서,


스킨의 <body> 영역 맨 위에 아래의 코드를 삽입하면 된다.

<script type="text/javascript" src="http://블로그 이미지 주소/j_FLVPDF.gif"></script>
<script type="text/javascript">
//<![CDATA[
  FLVPDFHelper.all(
    1,
    1,
    680, 500,
    "http://블로그 이미지 주소/s_player.gif");
//]]>
</script>

덧1. 주의할 점이 하나 있다… 기존 버전에 비해 로고 기능이 빠졌다.
그래서, 8행 다음줄에 있었던 로고 파일 지정이 없어졌다. OTL

덧2. 물론, 기존에 있었던 외부 mp4 파일 재생 기능, 구글닥스를 이용한 PDF/PPT 임베딩 기능 등은 그대로다.

덧3. js 파일은 이전 버전에서 변하지 않았다. 변한 것은 플레이어 코어뿐.

속편의 달인 어빈 커쉬너 감독 사망. R.I.P.

레슬리 닐슨이 11월 28일 사망했고, 다음 날인 11월 29일에 어빈 커쉬너 감독이 사망했다.
이틀 연속해서 영화인이 사망하니, 기분이 착잡하다.

R.I.P. Irvin Kershner (1923–2010)


여러모로 업적이 많은 분이지만, 나는 언제나 이 분을 속편의 달인이라 생각한다.
속편의 제작은 많은 부담을 안게 되고, 자칫 전편의 함정에 빠져버리기 쉬운데, 이 분은 전작을 충실히 이어받는 작품을 만드셨다.

그 중 가장 기억에 남는 걸작은 그가 57세의 나이에 감독한 [스타워즈 에피소드 5: 제국의 역습](1980).

어빈 커쉬너 감독은 전작인 [스타워즈]가 자신의 작품이 아니었음에도, 전작에 대한 높은 이해도를 보여주었다.
이 작품은 결국 시리즈 6편 중에서도 가장 높은 완성도를 보여준 작품이 되었고, "I am your father"는 전설이 되었다.

에구~ 우리 다쓰 이리 온~


3년 뒤 그는 케빈 맥클로리의 비정통 007 영화 [네버 세이 네버 어게인]을 감독한다.
당시 정통 007 영화인 [옥토퍼시]와 경쟁을 벌이고, 결국 흥행에서는 근소한 차이로 패했지만, 충분한 수익을 냈다.
(3600만 달러 투자, 1억 6천만달러 수익)

역시 007 영화에 대한 깊은 이해가 있었기 때문에 가능한 성과였다.

션 코너리 옹이 가발 투혼을 발휘하신 비정통 007 영화 [네버 세이 네어 어게인]


7년 뒤인 1990년 , 그는 공전의 히트작 [로보캅]의 속편을 감독한다.
비록 내용면에 있어서는 전작만큼의 충격을 보여주지는 못했지만, 역시 높은 이해도로 폭력성 면에서 상당히 높은 수위의 속편을 성공적으로 만들어냈다.

칠순을 앞둔 노감독 어빈 커쉬너 옹


수고 많으셨습니다.
좋은 곳에서 편히 쉬시기 바랍니다. R.I.P.

2010년 11월 29일 월요일

코미디 영화의 거목 레슬리 닐슨을 추모하며

R.I.P. Leslie Nielsen (1926–2010).


미국 동부시 기준으로 2010년 11월 28일 저녁 5시 30분 경 코미디 영화의 거목 레슬리 닐슨이 사망했다.
사인은 폐렴에 의한 합병증.

고1 때 [총알탄 사나이]를 즐겁게 보고, 치열했던 고3 때 [총알탄 사나이 2 1/2]을 보며 스트레스를 풀었던 기억이 새롭다.

그를 추모하며, 그에 대해 단편적으로 알고 있는 내용들을 정리해본다.

1. 레슬리 닐슨은 1926년생. 즉, [총알탄 사나이]가 흥행했을 때 그는 이미 62세로, 환갑을 넘긴 나이였다.

2. [총알탄 사나이]의 히로인 프레실라 프레슬리는 엘비스 프레슬리의 아내였으며, 마이클 잭슨의 장모였다.
   그녀는 1945년 생으로, 이미 43세였지만, 레슬리 닐슨이 너무 나이가 많아 그리 나이들어 보이지 않았다.

품 안의 아기가 바로 마이클 잭슨의 부인 리자 마리 프레슬리


3. [총알탄 사나이]에서 흑인 동료 경찰인 노드버그는 O. J. 심슨이 연기했다.
   아내를 살해했다는 혐의가 있었으나, 비싼 변호사 덕분에 무죄를 선고받은 것 같은 바로 그 O. J. 심슨이다!

4. [총알탄 사나이]의 원제는 [The Naked Gun: From the Files of Police Squad!]이다.
   이 제목은 단 6화까지만 촬영되고 취소된 TV 시리즈물 [Police Squad!]의 극장판이라는 의미로 붙여졌다.

5. [총알탄 사나이]의 오프닝은 [Police Squad!]의 오프닝을 업그레이드해서 만든 것이다.


6. 이후 시리즈의 정확한 제목들은 [The Naked Gun 2½: The Smell of Fear]과 [Naked Gun 33 1/3: The Final Insult]이다.

7. SF의 컬트 [금단의 행성](1956)에서 그는 무려 우주선 C-57D의 선장으로 출연했다. 당시 그는 30세.

이런 진중한 연기를 했었다는 것이 느낌이 오지 않음


8. 선장 역은 한 번으로는 부족했는지 이후 재난영화의 걸작 [포세이돈 어드벤처](1972)에서도 선장역을 맡았다.

이 때가 46세. 얼굴에 약간의 관록이 보이기 시작함.


9. 레슬리 닐슨은 무려 4번이나 결혼했으며, 자식은 둘이었다.



2010년 11월 28일 일요일

iOS 4.2에서의 자막 문제 해결 삽질기

by BLUEnLIVE | 2010/11/20 04:07

아이폰 동영상 한방에 변환하는 툴: 완벽 버전 by BLUEnLIVE | 2010/11/15 01:21 아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을...


토요일을 꼬박 투자해서 VCi를 수정했다.
인터페이스에 Status Bar를 사용하는 등 디자인에 대한 수정이 좀 있었다.
하지만, 무엇보다 iOS 4.2에서 비정상적으로 나오는 일부 자막 문제를 해결하는 것이 가장 큰 일이었다.

두둥! Status Bar를 활용한 인터페이스의 위용.


이전 버전 VCi에서 변환한 동영상의 자막에 <font> 태그가 사용되면 iOS 4.2에서는 아래와 같이 표시된다.

font 글꼴 돋네… 아니… 돋움이네…


이 문제는 사실 아이폰 쪽의 문제가 전혀 아니다. (그래서 더 골치가 아프다)

MP4Box는 srt 자막을 동영상에 추가시킬 때 TTXT[footnote]Apple SimpleText file이라고도 하는, 애플 컴퓨터에서 만든 XML 기반의 자막 포맷[/footnote]라는 포맷으로 변환한다.
그런데, MP4Box의 변환 기능이 완벽하지 않아서 <font> 태그를 전혀 처리하지 못한다.

이전 버전인 iOS 4.1에서는 <font> 태그를 (억지로) 인식했는데, 이것은 TTXT 포맷의 개념과 상충하는 면이 있다.
TTXT 포맷 내에 글자 스타일을 지정하는 필드가 있는데, 이를 놔두고 다시 글자 스타일을 지정하면 안되는 것이다.

이런 원론적인 문제를 해결하기 위해 TTXT 파일을 읽어들여 <font> 태그를 찾아 글자 스타일에 적용하도록 했다.
물론, <font> 태그 자체는 삭제한다.

이런 방법을 통해, 꼼수가 아닌 정공법으로 iOS 4.2의 자막 기능을 잘 적용할 수 있도록 수정했다.

마지막 줄도 빨강으로 나와야 되는데, 흰색인 건 아이폰 쪽의 버그임


덧1. <font>에서 실제로 처리하는 속성은 color 하나 뿐임. 다른 속성(글자 크기 등)은 아이폰에서 전혀 인식하지 않음

덧2. color 속성은 #000000 포맷은 물론, HTML 4.01 및 X11 color 값을 모두 처리함. 즉, <font color=SteelBlue>도 인식

덧3. TTXT 필드 중에 글꼴의 크기를 지정하는 부분이 있음. 기본값이 18인데, 기본값을 32로 올려봤지만, 크기는 똑같음.
     즉, 아이패드를 위해 뭔가를 더 할 수 있는 방법이 없는 것 같음.

덧4. 이미 만들어진 mp4 파일은 새 버전의 VCi로 다시 인코딩하면 자막을 수정해줌. 물론, 오디오 재인코딩은 불필요

덧5. iOS 4.1에선 해보진 않았지만, 잘 될 것이라 판단됨. 혹시 iOS 4.1 쓰시는 분중에 테스트해주실 분 안계신가요?

덧6. iOS 4.2에서 자막을 정상적으로 출력할 수 있도록 변환해주는 도구는 VCi가 유일한 것 같음!

2010년 11월 27일 토요일

iOS 4.2에서 많이 변한 동영상 플레이어

by BLUEnLIVE | 2010/11/20 04:07

아이폰 동영상 한방에 변환하는 툴: 완벽 버전 by BLUEnLIVE | 2010/11/15 01:21 아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을...


iOS가 4.2로 업데이트 된지 며칠이 지났다.
AirPlay나 AirPrint 등 다양한 새로운 기능도 추가되었고, 약간의 성능 하락도 지적되고 있다.
하지만, 그렇게 추가된 기능들은 나에겐 큰 효용이 없어보인다.

내가 주목한 것은 동영상 플레이어다. 다소 변경되었는데, 의외로 전혀 알려지지 않고 있다.

우선 인터페이스가 아주 약간 바뀌었다.


iOS 4.1에서 왼쪽에 있던 자막 선택 아이콘이 오른쪽으로 이동했다.
왜 굳이 이걸 오른쪽으로 옮겼는지는 잘 모르겠지만, 어쨌거나 이동했다.

이보다 훨씬 심각하게 변한 부분은 자막 처리다.

아래와 같은 srt 자막을 동영상에 끼워넣으면...

2
00:01:09,085 --> 00:01:12,533
<font color=red>red영어 자막 제작
Patay_Gutom_Na_Chickboy
<font size=2>(http://subscene.com)

iOS4.1 에서는 2% 부족하긴 하지만, 아래와 같이 원하는 자막이 나온다.


하지만, iOS 4.2에선 아래와 같은 충격적인(?) 결과가 나온다.


이게 뭐냐고?  애플의 소프트웨어 엔지니어들은 죄다 ㅂㅅ들인 건가?

아니다. 절대 아니다.

이건 절대로 애플의 문제가 아니다.
MP4Box는 srt 자막을 ttxt 포맷으로 변환하는데, 이 과정에서 <font> 태그는 정상적으로 변환하지 않는다.
오히려 iOS 4.1에서 자막에 들어있는 <font> 태그를 처리하는 것이 비정상이었던 것이다.

어쨌거나 iOS 4.2는 난감.

2010년 11월 21일 일요일

[초능력자]: 바벨2세의 초능력을 나눠가진 바보들의 삽질

by BLUEnLIVE | 2010/04/12 05:25

난 요코야마 미쓰테루의 걸작 만화 <바벨 2세>를 새소년 코믹스 출간 버전으로 접했다. 물론 작가는 김동명 이라고 알고 있었고... 당...



마누라님께 [소셜 네트워크]를 보자고 계속 꼬셨으나, 컴퓨터 얘긴 싫다셔서 어쩔 수 없이 보게된 [초능력자].
이 영화는 기본적으로 돈을 내고 보는 관객에 대한 예의가 전혀 없는 영화다.
등장인물들의 행동이나 내용 전개에 개연성이 거의 없다.

고수의 정체 같은 지엽적인 내용을 욕하는 것이 아니다.
어짜피 초능력자를 다룬 영화라면 고수의 정체가 무엇이든 수긍할 수 있다.

문제는 그게 아니라, 등장인물의 행동들에 어떠한 당위성도 보이지 않는다는 거다.

강동원의 행동에 대해 나름의 당위성을 느낄 수 있는 건 어린 시절과 도입부 뿐이고, 이후의 행동은 이해가 되지 않는다.
특히, 전개와 무관한 수많은 살인들… 강동원은 굉장히 사람을 많이 죽이는데, 그 중 이해되는 살인은 몇 건 안된다..
특히 맨홀… 이건 뭐 웃자고 넣은 장면도 아니고, 어이가 없을 지경이었다.

사실 강동원 캐릭터는 명백히 우리나라의 무책임한 권력자들을 상징한다.
서민의 목숨을 쉽게 여기고, 서민이 덤비면 지가 문제를 키워놓고, 되려 서민을 비난하는 꼴까지…
그렇다면 끝까지 그런 식으로 가야 된다. 갑자기 막판에 돌변하는 그 허무한 짓은 뭐냐? 개과천선 전대갈이냐?

고수의 행동도 마찬가지다. 고수와 그의 친구들 역시 앞뒤가 맞지 않는 행동만 계속 한다.
못 하는게 없는 능력자들이 서민 코스프레 하는 꼴이라니… (심지어 총도 개조하는 능력자들임)
게다가, 인생 루저 임대리 역에 준수한 외모의 고수란 건 루저라도 외모는 이 정도는 되어야 된다는 느낌만 줬다.



그 중에서도 굉장히 거슬리는 내용은 그들의 초능력이었다.

종종 [언브레이커블]을 얘기하던데, 솔까말 그들의 초능력은 <바벨 2세>의 능력을 둘이서 나눠가진 것에 훨씬 가까웠다.
물론, 염력이나 변신, 에너지 충격파 같은 내용은 안 나왔지만, 기본적으로 두 초능력자가 그 능력으로 대결하고, 엄청난 회복력으로 주인공이 부활한다는 내용은 그냥 <바벨 2세> 컨셉 그대로다.

둘의 초능력 대결. haja.tistory.com 에서 빌려옴


그 좋은 소재를 이렇게나 만들다 만듯한 결과를 보여주었다는 것 자체가 엄청난 실망이었다.
정말 돈 아까웠다. OTL


덧1. 강동원은 이거 찍고 "군대" 갔다던데, 알고 보니 공익. 저 좋은 몸으로 공익이라니… 현역은 나같은 ㅂㅅ만 가는 거냐?

덧2. 고수는 지구 평화 지킨다고 열심히 싸우는 것 같은데, 둘 덕분에 엄청나게 죽어나는 거 생각하면 별로 수긍 안 된다.

덧3. 주인공이 강동원인 것 같지만, 이 영화의 주인공은 고수가 연기한 임대리다.

2010년 11월 20일 토요일

유니코드를 처리하지 못하는 Subtitle Workshop

by (Sleepy) | 2008/12/08 19:15

자막 작업의 왕, Subtitle Workshop. from IT, PC/• Software 2008/12/08 19:15. 오늘 소개할 Subtitle Workshop은 감히 자막 편집기의 최고봉이라 말할 수 있을 것 같다. 자막 제작, 수정, 변환, 오류정정에 이르기까지 자막에 관련된 모든 작업을 지원 ...


Subtitle Workshop은 자막을 제작하고, 다른 포맷으로 변환하는 데 있어 굉장한 능력을 보여준다.
아마도 자막 관련 통합 툴 중에서 이만한 완성도를 보이는 프로그램은 없었던 것 같다.

하지만, 유니코드를 전혀 처리하지 못하는 치명적인 단점이 있다.


1. 유니코드(BOM) SAMI 미지원

이 점에 대해 우선 분명히 짚어야 할 점은 유니코드 SAMI라는 포맷 자체가 비정상적인 포맷이라는 것이다.

SAMI Structure and Declaration

Because SAMI is based closely on HTML, it has a similar (but not identical) component construct that makes it an easy format to learn and edit. All SAMI documents must begin with a <SAMI> tag and end with a </SAMI> tag.


<Understanding SAMI 1.0에서 발췌>


MS에서 작성한 Understanding SAMI 1.0에서 분명히 얘기하듯이 SAMI라는 포맷은 HTML에 기반을 둔 포맷이다.

하지만, HTML과 달리 텍스트 인코딩을 지정하는 기능이 없다.
SAMI의 한글 코드는 묵시적으로 확장 완성형 한글을 사용하고 있어 유니코드의 글자를 모두 표시할 수 없다.

우리나라의 사용자들은 이런 상황을 극복(?)하기 위해 그냥 SAMI 파일을 통째로 유니코드로 저장하기로 했다.
또한, 플레이어를 만드는 개발자들도 이에 동조해서 유니코드 포맷의 SAMI를 처리하고 있다.

그런데, SAMI의 기본을 생각해보면 SAMI에서 유니코드를 사용하려면 부호 있는 UTF-8을 사용했어야 했다.
하지만, 이젠 늦었다. 그냥 이렇게 갈 수 밖에 없다.

각설하고, 이 말도 안 되는 유니코드 SAMI는 Subtitle Workshop에서 읽을 수 없다.
그리고, 워낙에 말도 안 되는 포맷이라 앞으로도 Subtitle Workshop에서는 지원하지 않을 것이다.


2. SRT/UTF-8 미지원

이건 유니코드 SAMI와 완전히 다른 얘기다.

SRT 파일은 ANSI 포맷 외에, UTF-8 포맷으로도 저장할 수 있다.
특히, 아이폰 내장 비디오 플레이어는 UTF-8 포맷의 SRT 파일만 재생이 가능하다.

아이폰 재생 화면: 자막은 [아바타] 감성 버전. 영상은 전혀 무관한 [딱따구리]


즉, SRT는 SAMI와 다르게, 기본적으로 유니코드를 지원한다.

하지만, Subtitle Workshop 이 SRT/UTF-8를 전혀 읽거나 쓰지 못한다.


3. 글자 속성의 파괴

이 부분은 정말 이해가 되지 않는 부분이다.

SAMI는 (다른 자막 포맷과 마찬가지로) 다양한 글자 속성을 지원한다.
<b>, <i>, <font>, <u> 등등...
지원되는 속성와 형식은 SRT도 유사하다.

그런데, Subtitle Workshop는 어떤 글자 속성이든지 <i>로 대체해버린다.
난 한동안 SRT는 <i>밖에 지원하지 않는다고 생각할 정도였다.


결론적으로, Subtitle Workshop은 유니코드 SAMI를 SRT/UTF-8로 제대로 변환하지도 못하고, 글자 속성도 파괴한다.
자막 작업의 왕이라고 부르기엔 너무 커다란 헛점이 있는 것이다.

VCi를 만들면서 자막 변환 부분을 직접 제작한 이유가 바로 이런 점 때문이었다.
VCi는 유니코드 포맷 자막을 직접 읽어 완전하게 UTF-8 유니코드로 변환한다.