1

これは奇妙な質問です、私は知っています。

私は現在アートプロジェクトに取り組んでいますが、ファイルを勝手に探し回っても圧縮アーティファクトが見られないことに失望しています。ソースファイルは、主にmp4ファイルとaviファイルが混在しています。アプリケーションはファイル間をジャンプし、タイムライン内のさまざまなオフセットをランダムに探す必要があります。

カスタムパイプラインを構築し、バッファを調整して何もしないようにする必要がありますか?decodebin2に直接シークしてキーフレームを無視するように指示する方法はありますか?

私は非gstreamerオプションを受け入れていますが、Pythonに固執したいと思います。

4

2 に答える 2

1

最も簡単な方法は、ストリームにエラーを導入することです。ランダムなビット/バーストエラーは、予測できないグリッチにつながります!Identityのようなプラグインを変更する可能性がある場合は、デコーダーの前にプラグインを挿入し、ある程度の確率でランダムエラーを挿入するように変更します。確率を好みに合わせて変更します。フレームのヘッダーを破壊することを避けることができるが、そうすると、より巧妙なグリッチが発生する可能性があります。

よりシンプルなソリューション。ファイルを取得します。ファイルを読み取り、新しいバージョンを書き込むプログラムを使用して、ランダムにエラーを挿入します。これらのversinoをプログラムにフィードします。

最初の方法は動的ランダム効果用で、後の方法は静的効果用です[ファイルを再度実行すると同じアーティファクトが得られます] :)

于 2012-12-14T21:57:30.417 に答える
0

より低いビットレートを使用して再圧縮すると、より多くのアーティファクトが表示されます。これは一般的なことであり、シークとは関係ありませんが。gstはキーフレームをシークし、正確な位置に到達するまで可能な限り高速にデコードするため、正確なシークを実行すると、CPUの負荷が増えるだけです。ビデオ会議では、ビューを切り替えるときにアーティファクトが表示される場合があります。これは、他の会議参加者の小さなプレビュー用に低帯域幅のストリームが一般的であり、それが大きなものに切り替えられると、送信者がより高いものに切り替わるまでしばらくの間、ひどく見えます。ビットレート。

于 2012-12-13T08:36:45.477 に答える