Qt5 QMediaPlayer использует кодеки, поставляемые с программой

Мне нужно написать (портативную) программу, которая, помимо прочего, способна воспроизводить видеофайл. QMediaPlayer в Qt5 кажется очевидным выбором, но, очевидно, он использует только кодеки, которые установлены на исполняющей машине.
Все, что мне нужно для видеопроигрывателя, — это возможность проигрывать хотя бы один видеоформат на всех (windows) машинах без установки чего-либо и сообщать текущее состояние основной программе (текущее время в мс, воспроизведение / пауза).

Конкретный вопрос: может ли кто-нибудь дать мне несколько советов, где я должен смотреть? Как я могу внедрить видеокодек в свою программу, чтобы QMediaPlayer мог надежно воспроизводить видео на всех машинах? Альтернативно (но менее предпочтительно): как (легко) внедрить в программу другой видеоплеер, способный выполнить задачу?

Я уже попытал счастья с libVLC и одним или двумя другими вариантами, но до сих пор это не сработало, и кажется, что моя программа намного сложнее, чем должна быть.

2

Решение

QMediaPlayer может воспроизводить любой формат, который поддерживает медиа-сервис платформы. Вы должны установить правильные кодеки для видео типа для успешного воспроизведения. Поэтому вы должны установить кодеки GStreamer в Linux или, если вы работаете в Windows, вы должны установить что-то кодеки KLite.

Может быть, стоит подумать об использовании таких библиотек, как QtAV. Он будет работать для большинства платформ, и для его установки не требуется никаких дополнительных кодеков и плагинов.

QtAV использует FFmpeg и имеет несколько интересных функций, таких как множественные рендеры для 1 игрока, область интереса (обрезка видео), пользовательские фильтры, … Он также отлично работает как для Qt4, так и для Qt5.

2

Другие решения

QMediaPlayer использует базовую видеокарту любой машины, которую вы используете, это означает, что нет возможности портативного написания плеера с использованием такого класса. Ваше единственное решение, на мой взгляд, это переключение на библиотеку воспроизведения FFMpeg, которая вместо этого использует нативные кодеки.

0

По вопросам рекламы [email protected]