このような多くの疑問がありましたが、多くの問題が解決されていないか、私の状況と無関係なようです。PyQt5 - ストリームからビデオを再生することができません
mongodbコレクションでシリアライズされたデータとして(ピクルを介して)保存されたビデオを再生しようとしています。
ここでは、コードです:
binary_file = my_database_entry['binary video']
unpickle = pickle.dumps(binary_file)
outByteArray = QByteArray(unpickle)
mediaStream = QBuffer()
mediaStream.setBuffer(outByteArray)
mediaStream.open(QIODevice.ReadWrite)
mediaPlayer.setMedia(QMediaContent(), mediaStream)
mediaPlayer.play()
「my_database_entry」はMongoDBのエントリであると「バイナリビデオは」漬けビデオ入力用辞書のキーです。 はこれもメディアプレーヤが適切に作成され、私のユーザーインターフェース、すなわち私も「QMediaPlayer.StreamPlayback」フラグとのMediaPlayerを初期化しようとした
mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
videoPlayer = QVideoWidget()
mediaPlayer.setVideoOutput(videoPlayer)
が、再び、何も内で初期化されていることを前提としています。
Windowsで試してみるとクラッシュし、Macで試してみると黒い画面になります。エラーログも何もありません(どんなことでも啓発はありません)。
誰もがこれを成功させるためにこれを手に入れた人がいますか?あればどうしましたか?
ありがとうございます! -Mark
それはまさにそれでした。完璧に動作します。私の場合、簡潔にするために十分に説明していませんでした。私はまだそれが働くためにデータをunpickleする必要がありました。解凍は基本的に 'open(path、' rb ')as stream:'などのコードの代わりに使用されました。再度、感謝します!! – huitlacoche
この方法では少し問題が発生しました。 Windowsマシンでうまく動作しますが、OSXに行くと黒い画面が表示されます。顕著なエラーはありません。おそらくこれはMac固有のバグですか? – huitlacoche
@huitlacoche。私はLinuxを試してみましたが、OSXで自分自身でテストすることはできません。それは問題を引き起こしているメディアそのものかもしれないので、いくつかの異なるビデオ形式を試してみることをお勧めします。ファイルURLを使用して同じメディアを直接ロードしようとしましたか?私は真剣なプロジェクトで実際に使ったことがないので、Qt Multimediaがどれほど信頼性が高いのか分かりません。 (PS:Linux上でもう少しファイルを試してみましたが、1〜2つはうまくロードできませんでした。 – ekhumoro