問題を再現するには、JavaFXサンプルプロジェクトAdvancedMediaを使用できます。 flvビデオを、JavaFXによって符号化タイプがsupportedのmp4に置き換えます。MacFX MediaPlayerでmp4ファイルを使用したMacでのスタッター
編集:私は人がサンプルを編集するのに問題があると思っていました。プロジェクトのルートフォルダにビデオを置き、MEDIA_URL
をnew File("video.mp4").toURI().toString()
に設定するだけです。
これはWindowsプラットフォームでうまく機能します。しかし、Macでは、ビデオは開始時と終了前にぎりぎりになります。それは次のようなメッセージが表示さjava -jar AdvancedMedia.jar
と、端末上でプロジェクトを実行する場合:
AVF info: checkDecoderUsage, vaCodecString: <Gen6>
AVF info: pp_hw_name: RenderingEngine, id: 3ea, m_pp_nowait: 1
AVF info: RingBufferPool wr:0, rd:108, reset:93, warning:0
私はこのエラーがなどのMacBook Proは、空気、のi5/i7プロセッサで発生しました吃音/エラーメッセージを解決する方法はありますか?
私は-Dprism.verbose=true
で実行中のテストと私はWindowsとMacプラットフォームの主な違いを見ました:Windows上でMac上でそれがes2 sw
ている間Prism platform init order
がd3d sw
です。 Prism pipeline name
はそれぞれcom.sun.prism.d3d.D3DPipeline
とcom.sun.prism.es2.ES2Pipeline
です。
Mac上で同じD3Dパイプラインを使用することが考えられますか?しかし、-Dprism.order=d3d,sw
で実行している場合はjava.lang.ClassNotFoundException: com.sun.prism.d3d.D3DPipeline
となります。
また、-Xms
オプションでJVMメモリを増やそうとしましたが、効果がありませんでした。したがって、ビデオが他のプラットフォームでスムーズに再生されるにもかかわらず、実際にはコーデックの問題であるようです。
MacでWindowsで生成されたjarファイルをテストしていたので、MacでAdvancedMediaのサンプルを作成しようとしましたが、何か変わる可能性はないと思っていましたが、変更はありません。
これは、JavaFXのバグレポートのようなものです。少しオフトピック
が、私はこの前に、私はC++とVLCjは自分のアプリケーションのためのアプローチを試みたと私は唯一のためのMacの機能の問題のそれを変更したことを言わなければならない...
オプションd3dはDirect3Dを表し、これはWindowsのみに存在します。 Macは、es2パイプラインで使用されるOpenGLを使用します。 – mipa
ああありがとう、私はMacでd3dを使用しようとするのをやめます。だから、なぜMacのOpenGLがJavaFXメディアに問題があるのか?いくつかの質問は、それが窓よりも良いはずであることを指摘するのは奇妙です。もっと奇妙なことに、以前はMacでmp4ビデオを使ってjavafx mediaplayerをテストしたことがないようです... – Hancap
まあ、私はずっと前に何か問題はありませんでした。おそらくあなたの特定のエンコーディングに問題があるのかもしれません。さまざまなソースから別のmp4を試しましたか? – mipa