Convert video format to mp4 with ffmpeg on Mac
Techs( younjin.jeong@gmail.com, 정윤진 )
오늘은 간단한 팁.
맥용 인코딩 어플을 뒤져봐도 뭐 하나 쓸만한게 없는데 다들 도네이션이나 돈은 내란다.
이전에도 avconv 를 소개 한 적이 있는데, 오늘 맥에서 보니 brew 에는 avconv 가 없어서 ffmepg 를 사용하는 방법을 소개 한다.
먼저 brew 인데, 이건 구글에서 Home brew 라고 검색해서 먼저 설치 해 주어야 한다. 그거 설명은 패스.
아, 그리고 Home brew 는 이를테면 Gentoo 리눅스의 emerge 같은 건데, 패키지 소스를 받아서 컴파일 후 맥에 설치하기 때문에 컴파일러가 필요하다. 이 말인 즉슨, Xcode 를 설치해야 하고, 아울러 Xcode 의 CLI 도구도 설치해야 한다는 말. 검색하면 다 나온다.
어차피 기나긴 옵션에 대한 설명은 필요 없을 듯 하고.
brew install ffmpeg ==> Installing ffmpeg dependency: texi2html ==> Downloading http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.gz .... .. 하면 뭔가 엄청 다운받고 컴파일 한다. ... 기다리면, .... ==> Installing ffmpeg ==> Downloading http://ffmpeg.org/releases/ffmpeg-1.1.tar.bz2 ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/ffmpeg/1.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=cc ==> make install /usr/local/Cellar/ffmpeg/1.1: 141 files, 25M, built in 3.1 minutes # 하고 프롬프트가 떨어지면 설치가 완료 된 것.설치가 완료되면 .avi 와 같은 파일을 mp4 로 바꿔보자.
ffmpeg -i My_Godness.avi -qscale 0 -vcodec mpeg4 -acodec libfaac -threads 16 -f psp My_Godness.mp4 # 다음과 같은 메세지가 주르륵 나오며 인코딩을 시작한다. 영상 파일의 크기에 따라 시간이 걸리므로 주의. ffmpeg version 1.1 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 8 2013 18:20:08 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid libavutil 52. 13.100 / 52. 13.100 ........ ..... .. Stream mapping: Stream #0:0 -> #0:0 (mpeg4 -> mpeg4) Stream #0:1 -> #0:1 (mp3 -> libfaac) Press [q] to stop, [?] for help frame=227317 fps=262 q=0.0 Lsize= 2194142kB time=02:06:25.32 bitrate=2369.6kbits/s dup=1 drop=0 video:2069449kB audio:118243kB subtitle:0 global headers:0kB muxing overhead 0.294866%
ffmpeg 는 무지하게 많은 옵션을 가지고 있지만 내가 가진 비디오를 모바일용으로 인코딩 하기위해서라면 위의 정도로 충분하다.
간단히 설명하면,
-i : 원본파일
-qscale 0 : 퀄리티 변경 없이 인코딩 할 것
-vcodec mpeg4 : 비디오 코덱
-acodec libfaac : 오디오 코덱
-threads 16 : 작업을 수행 할 스레드의 갯수
-f psp : 출력파일
그럼, 즐거운 모바일 생활을 위해!
( younjin.jeong@gmail.com, 정윤진 )
댓글을 달아 주세요
쿨slr
이거 하다보면 응근히 불편할껄? 제대로 인코딩 되어 있는 곳을 찾아서 "애용" 하는게 가장 좋은 방법 일듯! 그리고 정녕 해야 한다면, 좋은 방법 있자나? 저기 저쪽에 밀어 두고 인코딩한후에 필요시 다운 (혹은 rsync 걸어두고) / 스트리밍 받아 해서 시청 할 수 있게. 요새 누가 로컬 리소스로 기달려 가면서 인코딩 한다고? 그쥐? Seedbox 쓸때가 편하고 좋았는데...
Cerberos
조금 더 스케일을 확장하면 Boinc + auto scaling + CloudFormation ㅎㅎ
http://boinc.berkeley.edu/
Cerberos
ㅎㅎ 형은 무료로 사용가능한 AWS account 있으니까 S3 bucket 에서 EC2 로 댕겨서 인코딩 하는 간단한 도구 만들어보면 재밌을듯!
S3 bucket -> EC2 -> S3 bucket -> Streaming
더 재미있을라면,
EC2 ( trasmission + simple web interface ) -> S3 bucket -> EC2 ( ffmpeg ) -> S3 bucket -> Download / Streaming
하지만 자료가 못된 자료라면 Private 으로!