Я видел ряд других вопросов, подобных этому, но кажется, что многие из них неразрешены или не связаны с моей ситуацией, так что здесь идет.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 и «двоичное видео» является ключом словаря для маринованной записи видео. Это также предполагает, что MediaPlayer правильно создается и инициализируется в моем пользовательском интерфейсе т.е.
mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
videoPlayer = QVideoWidget()
mediaPlayer.setVideoOutput(videoPlayer)
Я также попытался инициализацией медиаплеера с флагом «QMediaPlayer.StreamPlayback», но опять же, ничего.
Он падает, когда я пытаюсь использовать его в окнах, и это просто черный экран, когда я пытаюсь использовать его на Mac. Нет журналов ошибок или чего-либо (ничего не просвещать в любом случае).
Кто-нибудь получил это, чтобы успешно работать на них, и если да, то как вы это сделали?
Спасибо! -Mark
Это было именно оно. Работает отлично. В моем случае я недостаточно объяснил это для краткости. Мне все еще нужно было распечатать данные, чтобы они работали. Unpickling в основном заменил строку «open» (путь, «rb») как поток: 'и т. Д. Вашего кода. Еще раз спасибо!! – huitlacoche
Поэтому я столкнулся с проблемой с этим методом. Он отлично работает на Windows-машине, но, перейдя на OSX, я просто получаю черный экран. Нет заметной ошибки. Может быть, это какая-то ошибка, специфичная для Mac? – huitlacoche
@huitlacoche. Я только пробовал Linux, и сам не могу проверить его на OSX. Это может быть сам носитель, который вызывает проблему, поэтому я предлагаю вам попробовать несколько разных видеоформатов. Вы пытались загрузить один и тот же носитель напрямую с помощью URL-адреса файла? Я не знаю, насколько надежна Qt Multimedia в целом, поскольку я никогда не использовал ее в серьезном проекте. (PS: Я просто попробовал еще несколько файлов в Linux, и один или два не загружались успешно - не знаю почему). – ekhumoro