2007년 10월 1일 월요일

PSP 인코딩

PSP

  • PSP의 실제 화면 크기는 대각선으로 110 mm (4.3인치)이며, 픽셀 해상도가 480x272로 16:9 (1.777777778)입니다.
    동영상은 firmware 3.30부터 H.264/MPEG-4 AVC Main Profile의 비디오를 볼 수 있으며, 해상도는 720×480, 352×480, 그리고 480×272을 지원합니다. 이전까지 화면에 맞는 해상도는 368x208 (또는 320x240)입니다.
  • PSP 동영상 만들기
    1. 오디오 조정

      오디오는 특히 AC3인 경우에 소리가 작게 나오는데다 일부분에서 너무 크게 나오는 경우가 있어 필요하면 조정합니다.
      원본 동영상의 소리가 이미 알맞게 들린다면 필요없는 과정입니다.

      먼저 오디오를 pcm파일로 저장합니다.
      ffmpeg에서는
      $ ffmpeg -i input.avi -vn -acodec pcm_s16le -ar 44100 -ac 2 extract.wav
      mplayer에서는
      $ mplayer input.avi -ao pcm:file=extract.wav -vc null -vo null pcm:fast

      Audacity 의 effect -> Compressor...에서 Threshold를 기본갑 -12 db에서 -24 db로 낮추고 (너무 크게 나오는 부분을 낮추고), Ratio는 기본값대로 2:1, Attack Time도 기본값 그대로 0.2secs로 하였습니다. 소리가 조금 더 크게 들리게 Normalize to 0db after compressing는 체크된상태 그대로 합니다.

      윈도우 XP에서는 GoldWave의 Effect -> Volume -> Match 에서 조정할 수 있습니다. Average를 -12.0으로 하여 소리를 크게 한후 저장합니다.

      새로 만든 extract.new.wav를 기존의 동영상과 합칩니다.
      ffmpeg에서는
      $ ffmpeg -i input.avi -i extract.new.wav -map 0:0 -map 1:0 -vcodec copy -acodec copy input.audio.avi
      mencoder에서는
      $ mencoder -oac copy -ovc copy -o input.avi -audiofile extract.new.wav input.audio.avi

    2. Mencoder에서 사용할 srt 자막파일을 만듭니다.
      $ mplayer -dumpsrtsub input.audio.avi -sub input.smi -subcp cp949

    3. 동영상을 PSP에 맞게 368 x 208로 바꾸고 자막입혀 새 동영상을 만듭니다.

      $ mencoder input.audio.avi -ovc xvid -xvidencopts bitrate=2000 -vf crop=660:336:60:0,scale=368:208,harddup -sub dumpsub.srt -font /usr/share/fonts/truetype/unfonts/UnDotum.ttf -utf8 -oac copy -o output.avi

      위에서 원본 input.audio.avi의 원래 크기는 680(660+60+60) x 336입니다.

      필요하면 -ovc xvid -xvidencopts bitrate=2000 대신에 -ovc lavc -ffourcc DX50을 사용해도 됩니다. lavc 기본값이 비디오는 비트레이트가 800인 mpeg4 (DivX 4/5), 오디오는 비트레이트가 224인 mp2입니다. DivX 4/5의 mpeg4를 만들 때 default header가 FMP4입니다. 이는 폭넓게 인식되지 않으므로 -ffourcc DX50하여 DivX 5로 설정합니다.

    4. 동영상 합치기
      필요하면 avimerge로 동영상을 합칩니다.
      $ avimerge -o output.avi -i output-1.avi output-2.avi

    5. PSP 최종 동영상 만들기
      $ ffmpeg -i output.avi -f psp -title name -r 30000/1001 -b 384k -ar 24000 -ab 64k -s 368x208 M4V00001.MP4

      -b 512k로 -ab 128k로 하여 화질과 소리를 좋게하나 파일 크기가 커집니다.

      다음과 같이 그림파일을 저장합니다.
      $ ffmpeg -y -i output.avi -f image2 -ss 5 -vframes 1 -s 160x120 -an M4V00001.THM

      참고ffmpeg FAQ에서
      MPEG4/SP로는 ffmpeg -i input -acodec libfaac -ab 128(또는 64)kb -vcodec mpeg4 -b 512(또는 384)kb -ar 24000 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 368x208 -r 24000/1001 -title X -f psp output.mp4
      MPEG4/AVC로는 ffmpeg -i input -acodec libfaac -ab 128kb -vcodec h264 -b 1200kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp -flags loop -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 output.mp4
      PSPVC를 설치후 만들기도 합니다. ( MPEG4/SP (16/9) 368x208 vb=384kb ab=64kb, Volume은 110으로 합니다.)

  • 참고
    • mencoder로 PSP용 동영상 만들기 : 제대로 안됩니다.
      mencoder input.video -ofps 24000/1001 -af lavcresample=24000 -vf crop=660:336:60:0,scale=368:208,harddup -of lavf -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac -lavfopts format=psp:i_certify_that_my_video_stream_does_not_use_b_frames -info name=MovieTitle -o output.psp

댓글 2개:

익명 :

좋은 글 감사합니다.
그런데 자막을 입히니까 srt format 이나 smi format 모두 한글이 깨져서 입혀집니다.

쓰신 option 모두 그래도 적용해도 그렇네요.

어떻게 하면 좋을까요?

jongkwan@gmail.com으로 연락주세요.

My Blog :

$ mplayer -dumpsrtsub input.audio.avi -sub input.smi -subcp cp949

여기에서 만들어진 dumpsub.srt파일은 utf8입니다.

$ cat dumpsub.srt해서 터미널창에서
제대로 보이는지 확인해보십시요.