2017-04-12 2 views
0

問題を再現するには、JavaFXサンプルプロジェクトAdvancedMediaを使用できます。 flvビデオを、JavaFXによって符号化タイプがsupportedのmp4に置き換えます。MacFX MediaPlayerでmp4ファイルを使用したMacでのスタッター

編集:私は人がサンプルを編集するのに問題があると思っていました。プロジェクトのルートフォルダにビデオを置き、MEDIA_URLnew 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 orderd3d swです。 Prism pipeline nameはそれぞれcom.sun.prism.d3d.D3DPipelinecom.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の機能の問題のそれを変更したことを言わなければならない...

+0

オプションd3dはDirect3Dを表し、これはWindowsのみに存在します。 Macは、es2パイプラインで使用されるOpenGLを使用します。 – mipa

+0

ああありがとう、私はMacでd3dを使用しようとするのをやめます。だから、なぜMacのOpenGLがJavaFXメディアに問題があるのか​​?いくつかの質問は、それが窓よりも良いはずであることを指摘するのは奇妙です。もっと奇妙なことに、以前はMacでmp4ビデオを使ってjavafx mediaplayerをテストしたことがないようです... – Hancap

+0

まあ、私はずっと前に何か問題はありませんでした。おそらくあなたの特定のエンコーディングに問題があるのか​​もしれません。さまざまなソースから別のmp4を試しましたか? – mipa

答えて

0

私はこのバグことが判明ファイルの拡張子に関係なく、H.264でエンコードされたビデオをMacで使用しています。したがって、docsに記載されているように、他のJavaFXの唯一の代替案は、入手しにくいVP6エンコーディングを使用することです - 私のother質問を参照してください。 - 少なくともビデオはスムーズに実行され、レンダリングエラーメッセージはありません。

関連する問題