PLAYSTATION 3 で動画再生

MediaTomb を使って Debian をメディアサーバにする

Linux をメディアサーバにするためには、  MediaTomb を使うのが一般的なようだ。 Debian (unstable) では、パッケージになっているので、apt で入れれば良い。

apt-get install mediatomb

MediaTomb の設定

そのまま起動しただけでは、PLAYSTATION 3 が MediaTomb サーバを見つけてくれない。 /etc/default/mediatomb でインターフェースの設定をする必要がある。 PLAYSTATION 3 が繋がっているほうのインターフェースを指定する。

INTERFACE="eth0"

MediaTomb そのものの設定は、/etc/mediatomb/config.xml で行う。

  1. 早送りなどができるように、protocolInfo extend=yes にする
    <server>
      :
      <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
    </server>
    
  2. 日本語のファイル名(UTF-8)を扱えるようにする
    <import hidden-files="no">
    :
      <filesystem-charset>UTF-8</filesystem-charset>
    </import>
    
  3. 必要に応じて、media type を追加する
    <import hidden-files="no">
      <mappings>
        <extension-mimetype ignore-unknown="no">
          :
          <map from="m4v" to="video/mp4"/>
          <map from="mp4" to="video/mp4"/>
          <map from="mpg" to="video/mpeg"/>
          <map from="mpeg" to="video/mpeg"/>
          <map from="avi" to="video/divx"/>
      </mappings>
    </import>
    

PLAYSTATION 3 で再生できる h.264 動画の作成

あまり画質などにこだわらなければ、ffmpeg を使って簡単に生成できます。

一番簡単なのはこんな感じ。

ffmpeg -y -threads 2 -i input.mpg -f mp4 -r 29.97 -vcodec libx264 -acodec libfaac -ab 128k -qmax 22 -qdiff 2 -qcomp 0.2 -deinterlace -level 42 output.mp4

PS3 Video 9 による ffmpeg の実行例

こんな感じのがまぁまぁでいけた。ただ、PAR などの情報が消えるので、きちんとその辺処理したい。

VideoInfo Tool 3.1
(C) 2007 Red Kawa Inc.
http://www.redkawa.com

MediaInfoLib - v0.7.7.7

Container=MPEG-PS
FileSize=999 MiB
VideoCodec=MPEG-2V
VideoPlayTime=00:14:28.734
VideoBitrate=8 716 Kbps
VideoWidth=720
VideoHeight=480
VideoAspectRatio=1.778
VideoFrameRate=29.970
VideoFrameCount=26036
AudioCodec=AC3
AudioBitrate=256 Kbps
AudioMode=CBR
AudioChannels=2
AudioSamplingRate=48000

DONE
MSG - OS - Version: Microsoft Windows NT 6.0.6001 Service Pack 1
MSG - Converter - Version: 4.04
MSG - Converter - Device: PS3
MSG - Converter - Profile: PS3 Video
MSG - VideoInfo - Length: 868s
MSG - VideoInfo - Width: 720 pixels
MSG - VideoInfo - Height: 480 pixels
MSG - VideoInfo - Aspect Ratio: 1.778
MSG - VideoInfo - Framerate: 29.97 fps
MSG - VideoInfo - Frame Count: 26036
EXEC: C:\Program Files\Red Kawa\Video Converter
App\Tools\FFmpeg\ffmpeg.exe -y -i "C:\tmp\gaudi.mpg" -an -pass 1 -f
mp4 -title "gaudi" -timestamp "2008-12-11 11:15:45" -vcodec libx264
-level 42 -r 29.97 -b 2048k -bt 2048k -bufsize 50M -maxrate 62.5M -g
250 -coder 1 -flags +loop -cmp +chroma -partitions
+parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me_method umh -subq 6
-trellis 1 -refs 3 -me_range 16 -keyint_min 25 -sc_threshold 40
-i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4 -deinterlace -threads 0
"C:\Users\tach\Videos\gaudi.mp4"

FFmpeg version Sherpya-r15666, Copyright (c) 2000-2008 Fabrice Bellard, et al.
 libavutil     49.12. 0 / 49.12. 0
 libavcodec    52. 0. 0 / 52. 0. 0
 libavformat   52.22. 1 / 52.22. 1
 libavdevice   52. 1. 0 / 52. 1. 0
 libswscale     0. 6. 1 /  0. 6. 1
 libpostproc   51. 2. 0 / 51. 2. 0
 built on Oct 22 2008 23:37:16, gcc: 4.2.5 20080919 (prerelease) [Sherpya]
Input #0, mpeg, from 'C:\tmp\gaudi.mpg':
 Duration: 00:14:28.83, start: 0.291900, bitrate: 9640 kb/s
   Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27
DAR 16:9], 9200 kb/s, 29.97 tb(r)
   Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Output #0, mp4, to 'C:\Users\tach\Videos\gaudi.mp4':
   Stream #0.0: Video: libx264, yuv420p, 720x480 [PAR 32:27 DAR
16:9], q=10-51, pass 1, 2048 kb/s, 29.97 tb(c)
Stream mapping:
 Stream #0.0 -> #0.0
[libx264 @ 02B1BBB0]using SAR=32/27
[libx264 @ 02B1BBB0]VBV bitrate (62500) > level limit (50000)
[libx264 @ 02B1BBB0]using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64