얼마전 지인으로부터 Cannon HD 캠코더로 녹화된 동영상 파일을 받았다.
그런데 동영상 파일 확장자가 .m2ts로 되어 있었고, 곰 플레이어(버전 2.1.10.3789)나 윈도우즈 내장 미디어 플레이어로는 재생되지 않아서 구글과 위키피디아 검색에 바로 들어 갔다.
1. .m2ts
위키피디아 자료에 의하면 .m2ts 파일은 소니 HD (High Definition) 파일로 소니 캠코더로 녹화된 AVCHD 비디오 파일이다.
소니 뿐만 아니라 파나소닉, 캐논 등 AVCHD 캠코더들도 .m2ts 파일 형태로 동영상을 저장한다. (출처: http://en.wikipedia.org/wiki/.m2ts)
2. AVCHD (Advanced Video Codec High Definition)
AVCHD는 테잎을 사용하지 않는 캠코더에서 사용되는 High-Definition 동영상 저장 포맷이며 TOD, HDV, MiniDV와 호환된다. (출처: http://en.wikipedia.org/wiki/AVCHD)
그러므로 .m2ts 동영상 파일을 재생하거나 읽으려면 AVCHD 코덱이 필요한데, 현재 곰 플레이어(2008년 7월 11일 현재 버전 2,1,10 3779)나 윈도우즈 미디어 플레이어(버전 11.0.5721.5730)에는 이 코덱이 설치되어 있지 않으므로 일단 AVCHD를 디코딩하는 코덱을 찾아서 설치해야 한다.
다만 상용으로 구입할 수 있는 PowerDVD Ultra나 CoreAVC는 AVCHD 코덱이 내장되어 있으나 돈 안들이고 문제 해결을 해보았다.
구글로 검색을 해보니 http://forum.videohelp.com/topic339534.html에 답이 나와 있었다.
위 글에 나와 있는 방법을 사용하여 ffdshow와 Haali Media Spliter로 AVCHD를 디코딩하는 코덱을 설치한 다음 AviSynth를 Frame Server로 하여 VirtualDub으로 .m2ts 동영상을 읽은 다음 VirtuaDub으로 일반적으로 많이 사용되는 코덱으로 다시 인코딩해서 AVI 파일로 저장하면 AVCHD 코덱이 설치되어 있지 않은 플레이어도 변환된 동영상을 자유롭게 재생할 수 있게 한다.
3. ffdshow 설치
ffdshow는 http://sourceforge.net/projects/ffdshow-tryout/에서 다운로드 받아 설치할 수 있는데 내가 설치한 버전은 ffdshow_beta5_rev2033_20080705_clsid.exe 이다.
ffdshow를 설치한 다음 AVCHD 비디오 디코더 설정이 다음과 같이 되어 있는지 확인해야 한다.

먼저 위 그림과 같이 Video decoder configuration을 시작 메뉴에서 클릭하고 아래 그림과 같이 H.264/AVC가 libavcode으로 되어 있는지 확인한다. 만일 disabled로 되어 있다면 libavcodec으로 변경한뒤 OK 버튼을 누른다.

4. Haali Media Splitter 설치
Haali Media Splitter는 http://haali.cs.msu.ru/mkv/에서 다운로드 받고 설치한다.
현재 내 컴퓨터에 설치된 버전은 1.8.122.18 이다.
5. VirtualDub과 AviSynth 설치
내게는 이미 설치되어 있는 소프트웨어들이지만 새로 설치하려면 아래 링크로부터 다운로드 받고 설치한다.
VirtualDub - http://www.virtualdub.org/ (현재 설치된 버전: 1.8.1)
AviSynth - http://avisynth.org/ (현재 설치된 버전: 2.5.7)
6. 마지막으로 .m2ts를 avi로 변환하는데 필요한 Yadif Deinterlace AviSynth 플러그인을 다운로드 받아 설치한다.
Yadif Deinterlace 플러그인은 http://avisynth.org.ru/yadif/yadif.html에서 다운로드 받을 수 있으며 현재 설치된 버전은 0.9이다. (다운로드 링크가 화면 최하단에 있다. http://avisynth.org.ru/yadif/yadif09.zip)
Yadif 플러그인 설치는 AviSynth 플러그인 디렉토리에 DLL 파일을 설치하면 되는데 ZIP 파일안에 있는 여러 파일 중에서 yadif.dll만을 AviSynth 플러그인 디렉토리에 복사하면 된다. (내 컴퓨터의 경우 AviSynth 플러그인 디렉토리는 C:\Program Files\AviSynth 2.5\plugins이다.)

이상으로 .m2ts를 .avi로 바꾸기 위한 준비과정을 모두 마쳤다.
예를 들어 20080628133846.m2ts 파일을 avi로 바꾸고 싶다면 확장자 .avs를 가지는 AviSynth 스크립트를 Notepad 등으로 .m2ts 파일이 있는 디렉토리에 다음과 같이 작성하여 저장한다. (예제에서는 이 파일을 source.avs라고 한다.)

source.avs 스크립트를 대한 설명을 한다면 아래와 같다. (회색 칸에 적힌 줄번호는 참고를 위한 것이므로 소스 파일에는 입력하지 않는다.)
1 번줄에서 yadif 외부 플러그인을 로드한다.
이 때 yadif.dll이 설치된 경로를 정확하게 적어야 한다.
2 번줄에서 20080628133846.m2ts 동영상 원본을 오픈하고,
3 번줄에서는 Yadif 디인터레이스 플러그인으로 원본 이미지를 디인터레이스 시키고,
4 번줄에서 이미지 사이즈를 720 x 400으로 줄인다.
이렇게 저장된 AviSynth 스크립트는 곰 플레이어등으로 오픈하여 .m2ts 동영상을 볼 수 있게 해주는데 여러 단계를 거쳐 동영상을 보는 것이므로 컴퓨터 사양이 높아야 될 것이다.
.m2ts를 디코딩 할 수 없거나 보통 사양의 컴퓨터에서 재생할 수 있게 하기 위해서는 원본 동영상을 재인코딩 해야 하는데, VirtualDub을 사용하여 간단하게 재인코딩할 수 있다.
우선 VirtualDub에서 source.avs를 열고 재인코딩하고자 하는 Video와 Audio 코덱 설정을 한다.
재인코딩을 하는 것이므로 Video와 Audio 모두 Full Processing Mode로 지정하고 각각 원하는 코덱을 Compression Menu를 통해 정한다.


비디오 코덱은 인코딩 속도와 범용성을 고려해서 Microsoft MPEG-4 Video Code V2 으로 하였고, 오디오 코덱은 MP3로 하였다.


비디오/오디오 코덱 설정이 끝났으면 동영상을 AVI로 저장만 하면 된다.
저장하는 방법은 File 메뉴에서 Save as AVI 메뉴를 클릭하면 된다.

Save as AVI를 클릭하자마자 원본 동영상을 재인코딩해서 AVI로 저장하는데 컴퓨터 사양에 따라서 꽤 시간이 걸릴 수도 있다.

하지만 이렇게 저장된 AVI 파일은 .m2ts 파일보다 쉽게 어디서나 재생할 수 있다.
그런데 동영상 파일 확장자가 .m2ts로 되어 있었고, 곰 플레이어(버전 2.1.10.3789)나 윈도우즈 내장 미디어 플레이어로는 재생되지 않아서 구글과 위키피디아 검색에 바로 들어 갔다.
1. .m2ts
위키피디아 자료에 의하면 .m2ts 파일은 소니 HD (High Definition) 파일로 소니 캠코더로 녹화된 AVCHD 비디오 파일이다.
소니 뿐만 아니라 파나소닉, 캐논 등 AVCHD 캠코더들도 .m2ts 파일 형태로 동영상을 저장한다. (출처: http://en.wikipedia.org/wiki/.m2ts)
2. AVCHD (Advanced Video Codec High Definition)
AVCHD는 테잎을 사용하지 않는 캠코더에서 사용되는 High-Definition 동영상 저장 포맷이며 TOD, HDV, MiniDV와 호환된다. (출처: http://en.wikipedia.org/wiki/AVCHD)
그러므로 .m2ts 동영상 파일을 재생하거나 읽으려면 AVCHD 코덱이 필요한데, 현재 곰 플레이어(2008년 7월 11일 현재 버전 2,1,10 3779)나 윈도우즈 미디어 플레이어(버전 11.0.5721.5730)에는 이 코덱이 설치되어 있지 않으므로 일단 AVCHD를 디코딩하는 코덱을 찾아서 설치해야 한다.
다만 상용으로 구입할 수 있는 PowerDVD Ultra나 CoreAVC는 AVCHD 코덱이 내장되어 있으나 돈 안들이고 문제 해결을 해보았다.
구글로 검색을 해보니 http://forum.videohelp.com/topic339534.html에 답이 나와 있었다.
위 글에 나와 있는 방법을 사용하여 ffdshow와 Haali Media Spliter로 AVCHD를 디코딩하는 코덱을 설치한 다음 AviSynth를 Frame Server로 하여 VirtualDub으로 .m2ts 동영상을 읽은 다음 VirtuaDub으로 일반적으로 많이 사용되는 코덱으로 다시 인코딩해서 AVI 파일로 저장하면 AVCHD 코덱이 설치되어 있지 않은 플레이어도 변환된 동영상을 자유롭게 재생할 수 있게 한다.
3. ffdshow 설치
ffdshow는 http://sourceforge.net/projects/ffdshow-tryout/에서 다운로드 받아 설치할 수 있는데 내가 설치한 버전은 ffdshow_beta5_rev2033_20080705_clsid.exe 이다.
ffdshow를 설치한 다음 AVCHD 비디오 디코더 설정이 다음과 같이 되어 있는지 확인해야 한다.

먼저 위 그림과 같이 Video decoder configuration을 시작 메뉴에서 클릭하고 아래 그림과 같이 H.264/AVC가 libavcode으로 되어 있는지 확인한다. 만일 disabled로 되어 있다면 libavcodec으로 변경한뒤 OK 버튼을 누른다.

4. Haali Media Splitter 설치
Haali Media Splitter는 http://haali.cs.msu.ru/mkv/에서 다운로드 받고 설치한다.
현재 내 컴퓨터에 설치된 버전은 1.8.122.18 이다.
5. VirtualDub과 AviSynth 설치
내게는 이미 설치되어 있는 소프트웨어들이지만 새로 설치하려면 아래 링크로부터 다운로드 받고 설치한다.
VirtualDub - http://www.virtualdub.org/ (현재 설치된 버전: 1.8.1)
AviSynth - http://avisynth.org/ (현재 설치된 버전: 2.5.7)
6. 마지막으로 .m2ts를 avi로 변환하는데 필요한 Yadif Deinterlace AviSynth 플러그인을 다운로드 받아 설치한다.
Yadif Deinterlace 플러그인은 http://avisynth.org.ru/yadif/yadif.html에서 다운로드 받을 수 있으며 현재 설치된 버전은 0.9이다. (다운로드 링크가 화면 최하단에 있다. http://avisynth.org.ru/yadif/yadif09.zip)
Yadif 플러그인 설치는 AviSynth 플러그인 디렉토리에 DLL 파일을 설치하면 되는데 ZIP 파일안에 있는 여러 파일 중에서 yadif.dll만을 AviSynth 플러그인 디렉토리에 복사하면 된다. (내 컴퓨터의 경우 AviSynth 플러그인 디렉토리는 C:\Program Files\AviSynth 2.5\plugins이다.)
이상으로 .m2ts를 .avi로 바꾸기 위한 준비과정을 모두 마쳤다.
예를 들어 20080628133846.m2ts 파일을 avi로 바꾸고 싶다면 확장자 .avs를 가지는 AviSynth 스크립트를 Notepad 등으로 .m2ts 파일이 있는 디렉토리에 다음과 같이 작성하여 저장한다. (예제에서는 이 파일을 source.avs라고 한다.)

source.avs 스크립트를 대한 설명을 한다면 아래와 같다. (회색 칸에 적힌 줄번호는 참고를 위한 것이므로 소스 파일에는 입력하지 않는다.)
1 번줄에서 yadif 외부 플러그인을 로드한다.
이 때 yadif.dll이 설치된 경로를 정확하게 적어야 한다.
2 번줄에서 20080628133846.m2ts 동영상 원본을 오픈하고,
3 번줄에서는 Yadif 디인터레이스 플러그인으로 원본 이미지를 디인터레이스 시키고,
4 번줄에서 이미지 사이즈를 720 x 400으로 줄인다.
이렇게 저장된 AviSynth 스크립트는 곰 플레이어등으로 오픈하여 .m2ts 동영상을 볼 수 있게 해주는데 여러 단계를 거쳐 동영상을 보는 것이므로 컴퓨터 사양이 높아야 될 것이다.
.m2ts를 디코딩 할 수 없거나 보통 사양의 컴퓨터에서 재생할 수 있게 하기 위해서는 원본 동영상을 재인코딩 해야 하는데, VirtualDub을 사용하여 간단하게 재인코딩할 수 있다.
우선 VirtualDub에서 source.avs를 열고 재인코딩하고자 하는 Video와 Audio 코덱 설정을 한다.
재인코딩을 하는 것이므로 Video와 Audio 모두 Full Processing Mode로 지정하고 각각 원하는 코덱을 Compression Menu를 통해 정한다.


비디오 코덱은 인코딩 속도와 범용성을 고려해서 Microsoft MPEG-4 Video Code V2 으로 하였고, 오디오 코덱은 MP3로 하였다.


비디오/오디오 코덱 설정이 끝났으면 동영상을 AVI로 저장만 하면 된다.
저장하는 방법은 File 메뉴에서 Save as AVI 메뉴를 클릭하면 된다.

Save as AVI를 클릭하자마자 원본 동영상을 재인코딩해서 AVI로 저장하는데 컴퓨터 사양에 따라서 꽤 시간이 걸릴 수도 있다.

하지만 이렇게 저장된 AVI 파일은 .m2ts 파일보다 쉽게 어디서나 재생할 수 있다.
Trackback URL : http://par.sarang.net/trackback/448




Leave your greetings here.
LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll*
DirectShowSource ("20080729203251.m2ts"
yadif(mode=1)
Lanczos4Resize(720,400)
이상과 같이 실행했더니 버츄얼덥에서
Avisynth open failure:
Script error: expected a, or)
(G:\동영...\source.avs, line 2, column 34)라는 에러 메시지가 뜹니다.
뭐가 잘못 된건지 알려주시면 감사하겠습니다.
에러 메세지로 봐선 열린 괄호 ( 에 맞춰 닫힌 괄호 ) 가 제대로 닫히지 않은 것 같습니다.
일단 댓글에 올리신 내용대로라면
첫번째 줄에서 LoadCPlugin( .... ) 으로 괄호가 닫히지 않고 *으로 닫혔네요.
간단한 소스 코드이지만 찬찬히 살펴보시면 에러가 생긴 부분을 찾을 수 있을 것입니다.
좋은 결과 있으시길 빕니다.
잘되네요^^
도움이 되었다니 기쁩니다.
많은 량의 m2ts파일이 있다면 ffmpeg도 좋은 선택입니다~
VirtualDub은 간단한 변환 이외에도 여러가지 효과를 지정해서 넣을 수 있어서 좋구요~
ffmpeg으로 m2ts 변환을 해보진 않았습니다만 좋은 도구로 알고 있습니다.
한번 시간날때 들여다 봐야겠습니다.
댓글 남겨 주셔서 감사합니다.
버츄얼덥에서 avs파일이 열리지 않습니다. 뭐가 문제일까요?
avisynth open failure:
script error: syntax error
(avs파일경로, line 1, column 1)
source.avs 파일에서 첫번째 줄 LoadCPlugin 안에 yadif.dll 플러그인을 읽기위해서 경로명을 적어야 하는데, 그 경로명이 잘못된 것 같습니다.
윈도우즈에서 내 컴퓨터 (My Computer)로 C:\Program Files 디렉토리부터 시작해서 yadif.dll이 있는 디렉토리까지 찾아보시고 그 디렉토리명을 정확하게 (중간에 빈공간이 있으면 그것까지 포함해서) 입력하세요.
좋은 결과 있으시길 바랍니다.
LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll"

DirectShowSource("20100102154609.m2ts"
yadif(mode=1)
Lanczos4Resize(720,400)
이렇게 쓰고 비추얼덥에서 재생시킬려구했더니
자꾸 오류가 나요...ㅠㅠ
Avisynth open failure:
DirectShowSource:Could not open as video or audio.
Video returned: "DirectShowSource:couldn't open file 20100102154609.m2ts:이파일의 소스 필터를 로드하지 못했습니다."
Audio returned: "DirectShowSource:couldn't open file 20100102154609.m2ts:이파일의 소스 필터를 로드하지 못했습니다."
(C:\Document and Settings\내폴더임\My Documents\MxLibrary\CANON\20100102\source.avs, line 2)
이렇게 오류가 나요....제발알려주세요!!!
ㅠㅠㅠㅠ급하게 동영상 인코딩해야하는데..........ㅠㅠㅠㅠ
최대한빨리답변해주시면감사하겠습니다..ㅠㅠ
아무래도 동영상 파일을 읽지 못하는 것 같습니다.
에서 파일명에 전체 경로를 전부 인용부호 안에 넣어보세요.
2번째 줄에 있는 DirectShowSource("...파일명..."
좋은 결과 있기를 빕니다.
ㅠㅠ해보니까 안되네요...
다시 다 삭제하고 위에 글대로 다운받은다음
소스 입력 다시하고 제목에 확장자명.avs로
입력해서 저장했는데 단순하게
메모장 아이콘으로 저장이돼요..왜그런거죠?
알려주세요..ㅠㅠ
글쎄요.
우선은 저장한 파일 확장자가 .txt로 끝난 것이 아닌지 확인해 보시고 (파일 검색기? 에서 폴더 옵션에 파일명을 확장자까지 볼 수 있게 선택하는 메뉴가 있을 겁니다.) 아니면 파일명에 "파일.avs.txt" 이렇게도 해보세요.
천천히 차한잔 마시면서 차근차근 하면 길이 보이지 않을까요?
아 감사합니다^^
잘 되네요ㅋㅋ
죄송한데요....비추얼덥에서 인코딩할때
화질은 쪼~~금 안좋아져도 되는데
용량이 작아지게 할수 있는방법없나요??
avi파일이어야해요ㅠㅠ
귀찮으신거 아는데.......ㅠㅠ
인코딩해놓은 영상을 보면
처음엔 안그러는데 영상과 음성이
점점 달라져요.... 말보다 영상이 느려져요...
어떻게 해야 딱딱 맞게 볼수 있을까요?????
제발알려주세요~~ㅠㅠ급해요..........ㅠㅠ
댓글이 늦어져서 죄송합니다.
정신 없이 바빴거든요.
소리와 그림이 맞지 않는 것은 혹시 사용하시는 PC가 프로그램이 요구하는 컴퓨터 사양에 미치지 못하는 것이 아닐까 생각해봅니다.
그것이 아니라면 프로그램의 버그라고 생각도 할 수 있겠습니다.
소리와 음성을 따로 뽑아내서 나중에 다시 합치는 시도를 해보시면 좋은 결과 있으리라고 생각됩니다.
감사합니다.
LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll"
DirectShowSourceSource("2009_2_9_14_10_8.M2TS"
yadif(mode=1)
Lanczos4Resize(640,480)
버츄얼덥에서 열려고 하니
Avisynth open failure:
plugin C:\Program Files\AviSynth 2.5\plugins\yadif.dll is not Anisynth 2.5 plugin
(C:\~소스파일이 있는 경로~소스파일명.avs, line 1)
이라고 뜨네요 분명 위에 설명대로 yadif.dll 을 C:\Program Files\AviSynth 2.5\plugins폴더에 복사해 넣었는데 그러네요
참 그리고 여기 링크에 걸려있는 yadif.dll 링크 안열려서 다른 곳에서 받긴 했는데 제가 가지고 있는 yadif.dll 에 문제가 있는 건가요? 가능하시다면 yadif.dll 가지고 게시다면 첨부 부탁 드릴께요..
제 블로그에 댓글을 남겨 주셔서 감사합니다.
님 댓글이 중복되어서 하나는 지웠습니다. 이해 바랍니다.
말씀하신 글을 보면 아마도 yadif.dll에 버전이 맞지 않는다던가 하는 문제가 있는 것 같습니다.
제가 글을 쓴 시점에서 꽤 시간이 흘렀기 때문에 어떤 것이 최신 버전인지 지금은 잘 모르겠습니다. 참고 링크 또한 변경되거나 없어졌을 가능성이 있으므로 인터넷 검색엔진등으로 최신 버전을 내려받는 것이 나을 것으로 생각됩니다.
저도 시간날 때 좀 더 알아보겠습니다.
감사합니다.
감사합니다. 비디오 코덱 mpeg-4 codec이 보기상에 없어서 코덱설치후 다시 버츄어덥실행하니 생겨났네요
좋은 정보 감사합니다.
컴퓨터 마다 설치환경이 다를 수 있으므로 그런 문제가 있을 수 있겠군요.
지금은 잘 쓰시고 있으리라고 생각이 듭니다.
댓글 남겨 주셔서 감사합니다.
지금 프로그램들 설치는 다했거든요..
예를 들어 20080628133846.m2ts 파일을 avi로 바꾸고 싶다면 확장자 .avs를 가지는 AviSynth 스크립트를 Notepad 등으로 .m2ts 파일이 있는 디렉토리에 다음과 같이 작성하여 저장한다. (예제에서는 이 파일을 source.avs라고 한다.)
이거 무슨말인가요... ㅠㅠㅠㅠ 무슨 프로그램을 써야되는건가요..
4번째줄까지 나오게 어떻게 하는줄 모르겠어요...
무슨 특별한 프로그램을 쓰는 것은 아니고 윈도우즈에 기본으로 내장되어 있는 편집기인 노트패드(Notepad)로 새 파일을 하나 만들고
그 파일 내용에 source.avs 파일 내용을 입력합니다.
그리고 새 파일을 source.avs라는 파일명으로 저장한 뒤에 글에서 설명한대로 따라 해 보시기 바랍니다.
어떻게 해야 의미가 더 잘 전달되게 글을 쓸 수 있는지 그저 제 글실력 없음을 용서해주세요.
친절한 설명 탓에 어려워만 보였던 컨버팅작업을 잘 할 수 있었습니다. 감사합니다.
도움이 되셨다니 기쁘고, 댓글 남겨 주셔서 감사드립니다.
너무 큰 도움이 되었습니다. 그런데 제 VirtualDub에서 Video Compression에 코덱이 몇개 없고 특히 Microsoft MPEG Video Code V2 또 오디오 에도 MP3코덱이 없는 데 어떻게 해야 하는거죠? 부탁드리겠습니다.
코덱은 버추얼덥과는 상관없고 버추얼덥은 시스템에 설치되어 있는 코덱을 이용하기만 합니다.
코덱 패키지가 많이 있는데 저는 K-Lite Codec Pack을 사용하고 있습니다. 구글 등으로 검색하시면 많은 코덱 패키지를 찾는데 문제가 없으리라 생각합니다.
감사합니다.
자세한 설명덕에 쉽게 transcoding 할 수 있었습니다.^^
감사합니다. 제가 다음에 다시 찾아보기 쉽게 제 블로그에 링크를 하려고 합니다. 그래도 될까요? ^^;
작은 도움이 되었다니 저도 기쁩니다.
출처 밝히고 링크하시면 됩니다.
감사합니다.
좋은 정보 감사드립니다,,,^^
댓글 감사합니다.
덕분에 버츄얼 덥으로 인코딩하는법을 배웠습니다. 이런 좋은 정보를 공유해주셔서 감사해요.
댓글 감사합니다.