3

キャプチャしたビデオをエクスポートするアプリケーション(PAL SDI)を作成しています。元の色空間はuyvy(4:2:2)です。swscaleでフレームを4:2:0に変換し、avcodecでエンコードすると、フィールド間で色のにじみが発生します。これは、フレームがインターレースされていることに気づいていないswscaleによるものと思われます。これは、フィールドの1つを示す、エクスポートしたビデオからのボブインターレース解除フレームの一部の例です。

フィールド間の色のにじみ

ご覧のとおり、他のフィールドから色がにじんでいます。これを防ぐにはどうすればよいですか?ライブラリを調べて、フィールドを尊重するように指示するものをswscaleで見つけようとしましたが、何も見つかりませんでした。

各フィールドを個別のバッファーに保管しているので、それが役立つ場合は、事前にフィールドを個別に処理できます。

これについての助けに感謝します!

よろしくカール

編集:基本的に、私が欲しいのはPALDVを出力することです。ffmpeg(アプリケーション)がこれを処理できるので、swscaleはどういうわけかこのタイプのインターレース420を生成できると思います(私は思います)。

4

1 に答える 1

3

答えは、フィールドごとに1つずつ、2つのswscale操作を実行することです。swscaleをだまして同じバッファーを使用するには、高さの半分を2倍のストライドで指定し、2番目の操作を1行オフセットします。

私はついにlibav-userリストから答えを得ました。サンプルコードは、MPlayer / libmpcodecs/vf_scale.cおよびlibavfilter/vf_scale.cにあります。

于 2012-05-29T07:45:13.840 に答える