하늘높이의 프로그래밍 이야기

몇 주전에…

개인 서버로 사용하는 PC의 OS를 Fedora Core 13으로 업그레이드를 했는데….

이후 IPOD 동영상 인코딩을 위해  FFMPEG 등을 사용하기 위해 기존에 FreshRPMs를 사용하려고 봤더니..

너무 업데이트가 안되고 있는 것을 확인

 

요즘에 쓸만한 서드 파티 레포지토리를 찾아보았다.

그 중 맘에 드는 사이트가…

ATrpms… 페도라 코어 13의 rpm들도 따로 제공…

http://packages.atrpms.net/dist/f13/

 

#] rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms

#] vi /etc/yum.repos.d/atrpms.repo

 

[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1

#]yum install ffmpeg vlc faac gstreamer -y

 

IPOD  설치 환경 구축 완료!!

이제 기존에 올려놓았던 인코딩 스크립트를 이용해 인코딩을 해보죠^^

http://skylimit.pe.kr/146

아이팟 터치에서 트위터를 하다 보니…

트위터 링크를 클릭해보면… 티스토리를 페이지가 나오는 블로그들이 많이 보였다.

티스토리에는 /m을 하면 모바일 페이지가 나오는데… 크디큰 PC용 페이지를 안보이는 방법이 없을까?

그렇다고 모바일 링크를 따로 발급할 수도 없고…

 

자바스크립트로 브라우저 Agent값을 비교해 /m을 붙이면 되겠구나…

대충 아래 같이 작성 …

 

<!-- 모바일 브라우저 인식 -->
<script type="text/javascript">
    
    //Script by kunmin, 2010-04-06
    var mobilewords = new Array("Windows CE","Mobile");
    for (var word in mobilewords) {
        if (navigator.userAgent.match(mobilewords[word]) != null && confirm("모바일 브라우저 입니다. 모바일 페이지로 이동하시겠습니까?")) {
            //티스토리 /m 모바일 페이지로 이동
            location.href = "http://" + location.host + "/m" + location.pathname;
            break;
        } 
    }
</script>
<!-- 모바일 브라우저 인식 -->

 

승인 안 하면 기존 웹 페이지 나온다.

인코딩 스크립트를 이용해 동영상을 H.264로 인코딩한 후
자막을 쉽게 추가 하는 방법이 없을까 생각되서 찾아봤습니다.
2010/01/07 - [OS, DB/Linux,Unix] - 리눅스에서 iPod/iPhone 인코딩하자!!!
MP4Box라는 프로그램이 쉽게 지원하더군요.^^

먼저 mp4 동영상에 자막을 넣기 위해서는 아래와 같은 과정을 거쳐야 합니다.
smi to srt[UTF-8]
mplayer -dumpsrtsub [동영상 파일] -sub [자막파일] -subcp cp949  -vc null -vo null -noframedrop -benchmark -speed 100

만약 동영상 파일이 mplayer 에서 오류가 난다면...
mplayer /dev/zero -rawvideo ntsc:fps=1 -demuxer rawvideo -vc null -vo null -noframedrop -benchmark -sub [자막파일] -dumpsrtsub -subcp cp949 

이런 방식도 가능합니다. 대신 조금 느리죠.
smi2srt라는 Window C 프로그램도 리눅스용으로 컨버팅 해봤지만 생각보다 좋지는 않더군요 @.@

Mp4box Add
MP4Box -add dumpsub.srt:lang=ko:hdlr=sbtl [인코딩된 mp4 파일]

이제 아이팟에 넣어 볼까요?
간단한 샘플로 러브 액츄얼리를 해보았네요.




* 나중에 시간이 되면 쉘 스크립트로 하나 짜야겠네요.^^ 이놈의 감기 몸살이 떨어지면요. @.@
* 리눅스의 오픈소스로 가능하니 사용자가 소스를 올리면 IPOD용 파일(h.264)로 인코딩 해서 돌려주는 서비스도 가능 할 것으로 보입니다.

즐거운 아이팟/아이폰 라이프들 하고 계신가요?

저도 지하철에서 많이 이용하고 있습니다.
앱들을 이용하는것도 좋지만 음악이나 동영상을 보기에도 아이팟이 참 좋은데요.

그 때마다 인코딩을 하려니 쩝.... H.264 인코딩 시간이 엄청나게 걸리네요.
인코딩은 해야하는데 지금 사용하는 컴퓨터가 인코딩으로 느려지는 건 싫구요.
하여 항상 켜져있는 제 Linux 서버[넷탑]의 FFMpeg을 이용해서 인코딩 하는 방법이 없을까? 하고 찾아보았는데 아래와 같은 스크립트가 있더군요.^^

http://slated.org/howto_transcode_h264_for_ipod_with_ffmpeg
[IE로는 접속이 안되니 놀라지 마시길...@.@]

그중에 몇가지를 수정해 보았습니다.
필요 하신분은 참고하세요.^^

[주의] 이 스크립트가 돌아갈려면 mplayer,ffmpeg,gpac[MP4Box] 등이 설치 되어 있어야 합니다.

#]ipod.sh *.avi 가능!!


 

IPod를 사용하다 보니…

몇 가지 팁을 공유해볼까? 하는데… 화면 캡쳐를 어떻게 한담…

윈 CE 계열처럼 프로그램을 깔아서 해야 하나? 생각 하고 있었는데…

 

허걱!!

홈버튼+전원버튼 = 화면 캡쳐

이렇게 간단할 수가… 쩝

최근에 새로 구매한 아이팟 터치용으로 동영상을 인코딩하려 하는데.....
Fodora core 12 에서 FFMpeg 아래와 같은 옵션으로 돌릴려고 하니...

ffmpeg -i "INPUT.avi" -acodec libfaac -ab 128k -s 480x320 -vcodec mpeg4 -b 0.5M -flags +aic+cbp+mv0+mv4 -trellis 1 -mbd 2 -cmp 2 -subcmp 2 -g 250 -maxrate 0.8M -bufsize 2M -metadata "title=제목" -f ipod "OUTPUT.mp4"
 
뭐 대략 faac 오류...
알고 봤더니 아래와 같이 faac 옵션이 빠져있었다.
(사연은 non-free가 되었다는....)

FFmpeg version SVN-r20372, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  built on Nov  7 2009 17:50:32 with gcc 4.4.2 20091027 (Red Hat 4.4.2-7)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.37. 1 / 52.37. 1
  libavformat   52.39. 2 / 52.39. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1. 4. 1 /  1. 4. 1
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0

[root@linuxserver i686]# rpmbuild --rebuild --with faac ffmpeg-0.5-5.20091026svn.fc12.src.rpm
RPM 리빌딩, 의존성 개발 RPM들 설치, RPM 재 설치


[root@linuxserver i686]# ffmpeg
FFmpeg version SVN-r20372, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  built on Dec  9 2009 13:30:26 with gcc 4.4.2 20091027 (Red Hat 4.4.2-7)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-nonfree --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.37. 1 / 52.37. 1
  libavformat   52.39. 2 / 52.39. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1. 4. 1 /  1. 4. 1
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0

IPOD 터치용 인코딩 성공!!~

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG 옵션  (0) 2012.05.11
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12