LinuxでMPEG2再生
つまりは、プレイヤーを作るってことなのかな。
デコードはライブラリに任せることにする。
libmpeg2というのが有名っぽい。
これを使ったプレイヤーも多く、ただ再生したいのならそれらをどうぞ。
libmpeg2を使うにあたっての注意。
まずC++から使う場合はヘッダファイルのインクルードの際に
extern "C"{
#include
#include
}
のように「extern "C"」が必要。
それから、docフォルダ内のサンプルを試す場合はおそらく無音のmpeg2でないとちゃんとした画像が出力されません。
同様の理由で mpeg2dec をテストする場合
指定するファイルに音がついてるなら -s オプションで音を切り捨てないと綺麗に映像が出ません。
どれも当たり前といえばそうなんですが…。
ということで、mpeg2decのソース読んで
とりあえず映像の表示だけでもしちゃいたいです。
その際先回のSDLを使う予定。
…先回のソース、間違いだらけだったのでこっそり修正。
画面を16ビットカラーにしてぶん回してみたら
研究室のマシンで70FPS出たのでまぁよしとする。
SDL_CreateYUVOverlay()
等を使って YUV ビデオオーバレイ に描画すると
さらに表示速度を上げられるかも知れない。
デコードはライブラリに任せることにする。
libmpeg2というのが有名っぽい。
これを使ったプレイヤーも多く、ただ再生したいのならそれらをどうぞ。
libmpeg2を使うにあたっての注意。
まずC++から使う場合はヘッダファイルのインクルードの際に
extern "C"{
#include
#include
}
のように「extern "C"」が必要。
それから、docフォルダ内のサンプルを試す場合はおそらく無音のmpeg2でないとちゃんとした画像が出力されません。
同様の理由で mpeg2dec をテストする場合
指定するファイルに音がついてるなら -s オプションで音を切り捨てないと綺麗に映像が出ません。
どれも当たり前といえばそうなんですが…。
ということで、mpeg2decのソース読んで
とりあえず映像の表示だけでもしちゃいたいです。
その際先回のSDLを使う予定。
…先回のソース、間違いだらけだったのでこっそり修正。
画面を16ビットカラーにしてぶん回してみたら
研究室のマシンで70FPS出たのでまぁよしとする。
SDL_CreateYUVOverlay()
等を使って YUV ビデオオーバレイ に描画すると
さらに表示速度を上げられるかも知れない。