fc2ブログ
 

メディアプレイヤークラシック(MPC)でYUY2の動画が再生できない

AMV4ビデオコーデックで作成したYUY2の動画がMPCで再生できない場合があります。
同じ条件でもAMV2MTやAMV3では再生できるのにAMV4だと再生できません。

これには3つの要因が関係します
(1) MPCなどのメディアプレイヤーは画像サイズに制限があり、RGBは制限が緩いのに対し、YUY2では制限がきつい(特定の画像サイズしか扱えない?)

(2) AMV2MT/AMV3はYUY2の動画をRGBへ変換してMPCへ渡せるのに対し、AMV4はYUY2の動画はYUY2でしかMPCへ渡さないようになっている。

(3) MPCはYUY2の動画をRGBへ変換してくれない(WMPなどはYUY2の動画をRGBへ変換してくれる)。

このような事情からAMV4とMPCの組み合わでYUY2の動画を扱うと特定の画像サイズしか再生できない見たいです。
平たく言うと、対応できない画像サイズのYUY2動画はRGBへ変換して再生するけど、AMV4もMPCもRGBへ変換してくれないから再生できない。
と言った感じです。

具体例をあげると
1280x720 YUY2と言った一般的なフォーマットであればAMV4+MPCでも再生できますが、
1264x720 YUY2のように横サイズが16少ない画像サイズになると再生できません。
同じ画像サイズであってもRGB(1264x720 RGB32)であればAMV4+MPCで再生可能です。

ではどうするか?
手っ取り早い解決策はAMV4の方でRGBへ変換してあげればいい(変換する機能自体は実装済み)のですが、
画質面で不利になる可能性があるのでYUVの動画はYUVでのみ出力したいところです。

そこでAMV4デコーダーフィルターとなります。
コーデックの規格であるVCMにはおそらく画像サイズと言う概念しかないのでこのようなケースではどうにもならないのですが、Direct Show Filter(デコーダーフィルター)なら画像サイズとは別に表示エリアの概念があるため、YUY2における画像サイズの制限をなんとかできるかもしれません。

例えば、上記の1264x720の例であれば、画像サイズ(全体の大きさ)を1280x720とし、
表示エリアを1264x720とすることでYUY2のまま再生可能になるのではないかと思います。
もしくは、1264x720 YUY2のままネゴシエートできるかもしれません。

と言うことで、近々AMV4 Direct Show Decoder Filterを作って試してみようと思います。




GraphEditでみる1264x720 YUY2の再生グラフ
GraphEditで1264x720 YUY2の動画がどのように再生されるかを試したのが下図です。
graphedit.png

1つ目のAVI DecompressorがAMV4ビデオコーデックを使ってYUY2形式でデコードして
2つ目のAVI Decompressor 0001がYUY2をRGB32へ変換しています。
カラースペースコンバーターは何だろう・・・1ラインのバイト数をレンダラーの仕様と合うよう調整しているのかな

このようにWindows Media Playerなどはプレイヤー側(Direct Show Graphのインテリジェンス機能)の働きによりRGBへ変換して再生できます。ただし、明らかに無駄な処理が含まれているのも解りますね。
理想は、一つ目のAVI Decompressorと同じ働きを持つAMV4デコーダーフィルタを用意して、ビデオレンダラーと直結することです。RGB変換やカラースペースコンバーターは排除したいところですね。


 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2023/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ アマレコVR AMVコーデック Oculus Quest アマレココ アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus Unity SC512 ライブ機能 パススルー機能 デスクトップキャプチャ AVX2 Passthrough FAQ リモートソフト 質問コーナー ニコニコ動画 HDキャプチャ DirectShow 120Hz 背景透過 遅延 可変再生速度 レゴ 解説動画 Meta 組み換え VR LEGO XL2420T GV-USB2 2 アセット機能 液晶モニター 倍速液晶 デインターレース PS4 ベンチマーク アマステ AMV2MT Asset Intensity Pico4 MetaQuest Pro VRonVR MonsterX3A designs VideoKeeper2 AVX Alternate XCAPTURE-1 SD-USB2CAP4 GV-USB インストール RDT233WX-Z 32ZP2 31006 ffmpeg WindowsMR Rift 画像処理 31024 T2 60fps RGBキャプチャ UtVideo Shadow Play RYZEN 電源オプション HDCP Haswell HDMI 音遅延 QSV MonsterXU3.0R LameACM MP3 31021 フィギュア 音ズレ 録画 ゲームスムーズモード HT OBS MPC ハイパースレッディングテクノロジー NVEnc 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 32ZP32 オーバーレイ リプレイ機能 モノステ 倍速駆動 倍速補完処理 キャプチャカード Robust Video Matting API APIパススルー機能 60Hz 検証 passthrough python pytorch ハンドジェスチャー パカラーススルー機能 AssetBundle 2.0 Tracking ファイルマネージャプラス SkyBox Hand AMPlayer 新プレイヤー機能 GPU使用率 LAVFilters Preferred 可逆圧縮 GV-USB3 Kabelake SSE SKnet Filter Tweaker Windows 90Hz 新アマレコVR MR VRコントローラー SteamVR VR動画 フレーム間圧縮 XCapture-1 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面