티스토리 뷰



예전 같으면 DIVX 플레이어나 DVD 플레이어에서 돌려보았던 동영상을 최근에는 스마트폰, 태블릿, 포터블 프로젝터 등 그 한계를 정의할 수 없을 정도로 넓어지고 다양해 지고 있습니다. 그런데, 일부 기기의 경우에는 지원하는 코덱의(Codec)의 한계 때문에 영상은 나오는데 음성이 들리지 않거나, 음성은 나오는데 영상은 먹통인 경우를 종종 만나기도 합니다. 어렵게 구한 동영상인데 ...... PC에서는 볼수 있지만 모바일 기기나 프로젝터에서는 볼수 없는 안타까운 상황이죠. 이런 경우 VLC 미디어 플레이어의 파일 변환 기능을 사용하면 매우 편리하게 파일을 조정할 수 있습니다.

 

두가지 형태로 사용할 수 있습니다.(https://wiki.videolan.org/How_to_Batch_Encode/ 참조)


탐색기의 팝업 메뉴를 통해서 개별 파일 단위로 빠르게 변환하기

이 방법은 윈도우 탐색기에서 변환하려는 동영상 파일을 우측 마우스로 클릭하여 팝업 메뉴>보내기>변환배치 파일을 선택하여 변환하는 방식으로 다음과 같은 절차로 변환을 위한 환경을 준비합니다.

 

우선 [윈도우 키+R]로 실행창을 띄우고 shell:sendto을 입력하여 "보내기" 기능 폴더를 엽니다.

 

 

아래의 그림과 같이 "보내기" 기능 폴더에서 원하는 형태의 배치(*.bat) 파일을 작성합니다.

 

 

@ECHO OFF


SET _new_extention=mp4


:start

if "%~1"=="" (call goto :the_end)

CALL :SUB_CONVERT %1

SHIFT

goto :start



:SUB_CONVERT

SET _orig_path=%~1

echo %_orig_path%

SET _orig_extention=%_orig_path:*.=%

CALL SET _new_path=%%_orig_path%:.%_orig_extention%=.%_new_extention%%%

set _new_path="%_new_path%"


if exist "%ProgramFiles%\VideoLAN\VLC\vlc.exe" (

SET _vlc_path="%ProgramFiles%\VideoLAN\VLC\vlc"

) else (

SET _vlc_path="%ProgramFiles(x86)%\VideoLAN\VLC\vlc"

)


CALL %_vlc_path%  -I dummy -vvv %1 --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=%_new_path%} vlc://quit 

GOTO :eof


:the_end

 

배치 파일의 내용은 탐색기 팝업 메뉴>보내기로 전달한 파일 경로 및 파일 이름을 %1로 받아 출력 파일명을 확장자만 *.mp4로 출력하고 출력 과정에서 비디오 트랙은 원본 그대로 보내고 오디오 트랙은 mp3 형태로 인코딩하는 것입니다. VLC를 호출하는 라인 끝에 "vlc://quit"가 없으면 변환을 무한 반복하므로 주의하셔야 합니다. 저의 경우에는 장비가 AC3 코덱을 지원하지 않아서 음성 부분만 mp3로 바꾸는 작업을 진행했습니다. 자세한 옵션은 http://www.videolan.org/doc/vlc-user-guide/en/ch04.html를 참조하세요.

 

이제 변환 동영상을 우측 마우스로 클릭하면 아래 그림과 같이 "보내기" 메뉴에 배치파일 이름을 확인할 수 있고 메뉴를 선택하면 작업 과정 로그와 함께 변환 작업을 진행합니다.




 

배치 파일(*.bat)로 여러 파일을 한번에 변환하기

위의 예제가 개별 파일 단위로 작업 했다면 변환 대상을 리스트로 작성하여 일괄적으로 변환하는 방법입니다. 

@ECHO OFF

if exist "%ProgramFiles%\VideoLAN\VLC\vlc.exe" (

SET _vlc_path="%ProgramFiles%\VideoLAN\VLC\vlc"

) else (

SET _vlc_path="%ProgramFiles(x86)%\VideoLAN\VLC\vlc"

)


CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan01.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan01.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan02.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan02.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan03.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan03.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan04.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan04.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan05.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan05.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan06.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan06.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan07.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan07.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan08.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan08.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan09.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan09.mp4} vlc://quit

CALL %_vlc_path% -I dummy -vvv vlc://pause:3 esan10.avi --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:standard{access=file,mux=ts,dst=esan10.mp4} vlc://quit


echo **** FINISHED ***

pause

 

사용 방법은 탐색기의 보내기를 활용하는 방법과의 거의 동일하고 차이점은  프로그램 아규먼트를 처리하는 부분이 빠지고 작업 대상을 직접 지정한 것입니다.

 

이 파일 변환 기능은 다수의 미디어 파일을 완전히 다른 형태로 인코딩하는 용도로도 유용하게 사용할 수 있습니다.



댓글
댓글쓰기 폼