PSP向け設定

convert.xmlの編集例 から移動してきました。
PSP の VIDEO フォルダ向けの H.264+AAC 動画の変換設定についてです。

VIDEO フォルダで再生可能な H.264 + AAC 動画の仕様

PSP (PlayStation Portable) RSS チャンネル向けコンテンツ作成 ガイドライン Ver. 3.80 (PDF直リンク) によります
(システムソフトウェアのバージョンにより若干差異があります)。

[1]

  • 映像部分: H.264 Baseline Profile Level 1.3
    • 解像度 320x240 以下
    • ビットレート 768kbps 以下, フレームレート 30fps 以下、CAVLC のみ
  • 音声部分: AAC-LC 128kbps 以下、サンプリングレート 48000Hz 以下

[2]

  • 映像部分: H.264 Main Profile Level 2.1
    • 解像度 480x272 以下
    • ビットレート 4000kbps 以下、フレームレート 30fps 以下、CABAC のみ、Bフレーム使用可 (参照Bフレームは不可)
  • 音声部分: AAC-LC 128kbps 以下、サンプリングレート 48000Hz 以下

[3]

  • 映像部分: H.264 Main Profile Level 3.0
    • 解像度 720x480 または 640x480 (システムソフトウェア Ver. 5.00 以降のみ) のいずれか
    • ビットレート 10000kbps 以下、フレームレート 30fps 以下、CABAC のみ、Bフレーム使用可 (参照Bフレームは不可)
  • 音声部分: AAC-LC 128kbps 以下、サンプリングレート 48000Hz 以下

のいずれかです。Main Profile にする場合は CABAC を使用していない動画は非対応データとされてしまい再生できません。
以上を踏まえて、

  • -coder 0 ⇒ Baseline にする場合 または -coder 1 ⇒ Main Profile にする場合
  • -level 13 or 21 or 30 ⇒ 映像部分のレベルを整数値で指定
    ⇒ level の自動判定で特に問題ない場合がほとんどですが、解像度と指定ビットレートによっては上記以外になることがあるため
    明示的に指定しておいた方が無難だと思います。

が必要です。

具体的な設定例

上記の仕様に則った動画を作成するための最低限の 変換オプションです。
ffmpeg には非常に多岐にわたるオプションがあり、これらをフルに使うとコマンドラインが非常に長くなって
本当に必要な部分が分かりにくくなるため、必要最低限のもの以外は省略しています。

<設定例>

[1] Baseline Profile Level 1.3 の場合
iPod 向けの 320x240 設定 と同じで OK ですので省略。
上記の設定から、-f ipod をはずしてください (iPod と共用する場合は付けたままでも問題ないです)。

[2] Main Profile Level 2.1 の場合
現行の Craving Explorer に入っている convert.xml のデフォルト設定とほぼ同じです
PSP本体で動画を見る場合、このサイズで原寸表示になります。

<DisplayName>PSP (H.264+AAC)</DisplayName>
<CommandLine>-vcodec libx264 -coder 1 -level 21 -s 360x270 -aspect 4:3 -b 1200k -r 30000/1001 -acodec libfaac -ar 44100 -ab 128k</CommandLine>
<FileExtension>mp4</FileExtension>
<DisplayName>PSP ワイド(H.264+AAC)</DisplayName>
<CommandLine>-vcodec libx264 -coder 1 -level 21 -s 480x270 -aspect 16:9 -b 1200k -r 30000/1001 -acodec libfaac -ar 44100 -ab 128k</CommandLine>
<FileExtension>mp4</FileExtension>

(※1) -b 1200k はデフォルトの convert.xml に合わせています。level 2.1 の規定では最大ビットレートは 4000kbps まで。

[3] Main Profile Level 3.0 の場合
TV出力ケーブル等で外部に出力する場合など、解像度を大きくしたい場合。

<DisplayName>PSP 高解像度(H.264+AAC)</DisplayName>
<CommandLine>-vcodec libx264 -coder 1 -level 30 -s 640x480 -aspect 4:3 -b 3000k -r 30000/1001 -acodec libfaac -ar 44100 -ab 128k</CommandLine>
<FileExtension>mp4</FileExtension>
<DisplayName>PSP 高解像度(H.264+AAC)</DisplayName>
<CommandLine>-vcodec libx264 -coder 1 -level 30 -s 720x480 -aspect 15:11 -b 3000k -r 30000/1001 -acodec libfaac -ar 44100 -ab 128k</CommandLine>
<FileExtension>mp4</FileExtension>
<DisplayName>PSP 高解像度 ワイド(H.264+AAC)</DisplayName>
<CommandLine>-vcodec libx264 -coder 1 -level 30 -s 720x480 -aspect 20:11 -b 3000k -r 30000/1001 -acodec libfaac -ar 44100 -ab 128k</CommandLine>
<FileExtension>mp4</FileExtension>

(※1) -b 3000k は適当です。level 3.0 の規定では最大ビットレートは 10000kbps まで。
(※2) 解像度を 720x480 にする場合アスペクト比の指定は、ピクセル比が 10:11 (4:3表示) or 40:33 (16:9表示) である必要があります。
このピクセル比を適用すると表示アスペクト比は 15:11 (4:3表示) または 20:11 (16:9表示) になるので、-aspect ではこちらを指定してください。

-f psp オプションについて

ffmpeg には -f psp というオプションがありますが、このオプションは以前のバージョンのシステムソフトウェアで
MP_ROOT 以下においていた動画ファイル (Image Converter が出力するメモリースティックビデオ形式のファイル) に
偽装するようなヘッダを生成します。VIDEO フォルダにおく場合は通常 -f psp は必要ありません。

※ Craving Explorer の convert.xml では -f psp がついていますが、これは映像・音声トラックがともに一つづつで
あることを保証する (-f psp はこれ以外の場合エラーになる) ためにつけています。

その他カスタマイズについて

基本的に iPod のページ と同じですが PSP の場合
CABAC と B-Frame が利用できるため、以下のオプションも追加で使用可能になります。

  • -bf
  • -partitions +partb8x8
  • -b_strategy 0~2
  • -b_qfactor
  • -directpred 0~3
  • -flags2 +wpred
  • -trellis 1~2
  • -subq 7 or 9 (B フレームを使わない場合は 6 と 7 は同等、8 と 9 も同等です)

依然として使えないのは、-partitioins +parti8x8, -flags +dct8x8 (HighProfile になるため) と
PSP で正常に再生されない -flags2 +bpyramid です。

iPod との動画の共用について

一応、PSP では Baseline Level 2.1 というのも再生可能な模様です。
従って、解像度 480x272 以下、Baseline (CAVLC+Bフレーム無し)、Level 2.1 で作成してあれば iPod 5.5G 以降と共用可能な動画になると思われます
(5.5G の場合 -f ipod で iPod uuid を付加してください)。

コメント

以下はコメント欄です

  • 使えるオプションを可能な限り入れて見ました。
    画質・ファイルサイズともに元とほぼ同じになるようにするのが目標です。
    "-threads 2"を入れても変換時間は元動画の1.3倍ほど掛かります。
    効果が無さそうであれば指摘をお願いします。
    <CommandLine>-f psp -vcodec libx264 -coder 1 -bufsize 512 -g 250 -s 360x270 -crf 21 -qmin 16 -qmax 37 -bf 3 -subq 9 -trellis 2 -cmp chroma -directpred 3 -b_strategy 1 -partitions parti4x4+partp8x8+partb8x8 -flags2 +wpred+mixed_refs -sc_threshold 60 -keyint_min 5 -r 30000/1001 -me_method esa -me_range 32 -refs 3 -rc_eq "blurCplx^(1-qComp)" -qcomp 0.3 -acodec libfaac -ar 44100 -ab 128k</CommandLine> -- 
    見物人A 2009-05-08 (金) 01:36:15
  • ファイルサイズを圧縮するサンプルを作りました。(参考リンクより)
    "-g 450" (早送りの秒数が大きいが、サイズは圧縮。※途中で再生が止まることがあるので、300 くらいにした方がいいかもしれない)
    "-qmax 51" (x264 デフォルトの設定。指定ビットレートより大きくなるのを防ぐ)
    "-b 764k -bt 764k" (同じにすると、指定ビットレートが大きくなるのを防ぐ)
    "-acodec copy" (音飛びが発生する場合は、元動画の音声を使う。音声に SBR が使われていると、PSP では再生できないので、"-acodec libfaac -ac 2 -ar 44100 -ab 128k" を指定する。)
    "-r " を省略すると、元動画と同じフレームレートを使う(音ズレ対策)
    "-async 100" (音ズレ対策)
    その他オプション (適当です)
    <Item>
       <DisplayName>PSP用 H.264 低ファイルサイズ(ニコニコ用4:3 - 128k)</DisplayName>
       <ActionName>h264-low-4-3</ActionName>
       <DeviceName>psp</DeviceName>
       <CommandLine>-f mp4 -vcodec libx264 -g 450 -s 360x270 -aspect 4:3 -r 30000/1001 -b 764k -bt 764k -crf 25 -mbd 2 -me_method umh -subq 6 -me_range 32 -sc_threshold 65 -keyint_min 3 -nr 100 -qdiff 4 -qcomp 0.60 -qmin 18 -qmax 51 -flags bitexact+alt+mv4+loop -flags2 bpyramid+wpred+mixed_refs -acodec libfaac -ac 2 -ar 44100 -ab 128k -sn -coder 0 -level 13</CommandLine>
       <FileExtension>mp4</FileExtension>
    </Item>
    
    <Item>
       <DisplayName>PSP用 H.264 低ファイルサイズ(-r オリジナル 4:3 - 128k) 音ズレ対策</DisplayName>
       <ActionName>h264-low-2</ActionName>
       <DeviceName>psp</DeviceName>
       <CommandLine>-f mp4 -vcodec libx264 -coder 0 -level 13 -s 320x240 -aspect 4:3 -b 800k -bt 800k -crf 25 -mbd 2 -me_method umh -subq 6 -me_range 32 -keyint_min 3 -nr 100 -qdiff 4 -qcomp 0.60 -qmin 18 -qmax 51 -g 450 -sc_threshold 65 -flags bitexact+alt+mv4+loop -flags2 bpyramid+wpred+mixed_refs -acodec libfaac -ac 2 -ar 44100 -ab 128k -sn -async 100</CommandLine>
       <FileExtension>mp4</FileExtension>
    </Item>
    
    <Item>
       <DisplayName>PSP用 H.264 低ファイルサイズ(ニコニコ用16:9 - 128k)</DisplayName>
       <ActionName>h264-low-16-9</ActionName>
       <DeviceName>psp</DeviceName>
       <CommandLine>-f mp4 -vcodec libx264 -g 450 -s 480x270 -aspect 16:9 -r 30000/1001 -b 764k -bt 764k -crf 25 -mbd 2 -me_method umh -subq 6 -me_range 32 -sc_threshold 65 -keyint_min 3 -nr 100 -qdiff 4 -qcomp 0.60 -qmin 18 -qmax 51 -flags bitexact+alt+mv4+loop -flags2 bpyramid+wpred+mixed_refs -acodec libfaac -ac 2 -ar 44100 -ab 128k -sn -coder 0 -level 13</CommandLine>
       <FileExtension>mp4</FileExtension>
    </Item>
    
    <Item>
       <DisplayName>PSP用 H.264 低ファイルサイズ(ニコニコチャンネル用16:9 - 元音声を使用)</DisplayName>
       <ActionName>h264-low-16-9_2</ActionName>
       <DeviceName>psp</DeviceName>
       <CommandLine>-f mp4 -vcodec libx264 -g 450 -s 480x270 -aspect 16:9 -r 30000/1001 -b 764k -bt 764k -crf 25 -mbd 2 -me_method umh -subq 6 -me_range 32 -sc_threshold 65 -keyint_min 3 -nr 100 -qdiff 4 -qcomp 0.60 -qmin 18 -qmax 51 -flags bitexact+alt+mv4+loop -flags2 bpyramid+wpred+mixed_refs -acodec copy -sn -coder 0 -level 13</CommandLine>
       <FileExtension>mp4</FileExtension>
    </Item>
    test さん 2010-08-30 (月) 12:34:56

参考リンク

ffmpeg 関連

PSP 関連

その他

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-27 (金) 21:22:16