LINUX.ORG.RU

QMediaPlayer в Debian

 , ,


0

2

Помогите, пожалуйста!

Пытаюсь выводить видео в уголочке формы по нажатию кнопки.

Я так понимаю, что надо использовать QMediaPlayer.


 QVideoWidget *videowidget = new QVideoWidget;
    ui->animationLayout->addWidget(videowidget);
 
    QMediaPlayer *pl = new QMediaPlayer(this);
    pl->setVideoOutput(videowidget);
    pl->setMedia(QUrl::fromLocalFile("/mnt/.../name.flv"));
    pl->play();
    videowidget->show();

Код рабочий!

С горя проверила на Win7 - работает. *Щас все тут будут матюкаться*

Но на Linux типа Debian Wheezy вместо видео появляется черный прямоугольничек ((

У меня Qt Creator 3.1.1, Qt 5.3.0

При запуске в выводе приложения страшные слова:

GStreamer-CRITICAL **: gst_object_ref_sink: assertion `GST_IS_OBJECT (object)' failed
Cannot connect to server socket err = Нет такого файла или каталога
Cannot connect to server request channel
jack server is not running or cannot be started
Warning: "Для типа «video/x-flash-screen, pixel-aspect-ratio=(fraction)1/1, width=(int)387, height=(int)370, framerate=(fraction)1000/1» недоступен декодер."
Error: "В вашей установке GStreamer отсутствует модуль."

Вот пакеты:

dpkg -l | grep gstreamer

ii  gir1.2-gstreamer-0.10                 0.10.36-1.2                        amd64        Description: GObject introspection data for the GStreamer library
ii  gstreamer-tools                       0.10.36-1.2                        amd64        Tools for use with GStreamer
ii  gstreamer0.10-alsa:amd64              0.10.36-1.1                        amd64        GStreamer plugin for ALSA
ii  gstreamer0.10-doc                     0.10.36-1.2                        all          GStreamer core documentation and manuals
ii  gstreamer0.10-fluendo-mp3:amd64       0.10.23.debian-2                   amd64        Fluendo mp3 decoder GStreamer plugin
ii  gstreamer0.10-plugins-base:amd64      0.10.36-1.1                        amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-doc        0.10.36-1.1                        all          GStreamer documentation for plugins from the "base" set
ii  gstreamer0.10-plugins-good:amd64      0.10.31-3+nmu1ubuntu5              amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugly:amd64      0.10.19-2                          amd64        GStreamer plugins from the "ugly" set
ii  gstreamer0.10-tools                   0.10.36-1.2                        amd64        Tools for use with GStreamer
ii  libgstreamer-plugins-base0.10-0:amd64 0.10.36-1.1                        amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base0.10-dev     0.10.36-1.1                        amd64        GStreamer development files for libraries from the "base" set
ii  libgstreamer0.10-0:amd64              0.10.36-1.2                        amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-dev                  0.10.36-1.2                        amd64        GStreamer core development files
ii  phonon-backend-gstreamer:amd64        4:4.7.1-1ubuntu4                   amd64        Phonon GStreamer 0.10.x backend
ii  phonon-backend-gstreamer-common:amd64 4:4.7.1-1ubuntu4                   amd64        Phonon GStreamer 0.10.x backend icons

Что делать? Хэлп.

А вообще этот файл к-л программой-плеером, использующей GStreamer проиграть можно, Totem, например?

backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 1)

Он же пишет по-русски:

недоступен декодер

Установи :3

Y ★★ ()
Ответ на: комментарий от backbone

vlc проигрывает. Пробовала другие форматы типа mp4, mpg - то же черное пятно на форме вместо видео.

TatianaSh ()
Ответ на: комментарий от Y

Если скажете, как установить, буду весьма признательна! )

Вроде все что можно с gstreamer установлено..

TatianaSh ()
Ответ на: комментарий от a1batross

Нет, врядли это, там проблема в том что qt не поддерживал gstreamer-1.0, а тут у ТС 0.10 версия

alchemist ()
Ответ на: комментарий от TatianaSh

Пальцем в небо, установка gstreamer0.10-ffmpeg не решит ли проблему... В репозитории Debian stable не вижу его, только в sid отчего то и в old stable.

backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 1)

Используй QtAV, он базируется на ffmpeg и играет всё, что может ffmpeg.

fluorite ★★★★★ ()
Ответ на: комментарий от backbone

Эмм... я не знаю, откуда брать. Можно ссылку?

Поискала тут и там, нету такого.

Здесь скачала - требует кучу пакетов типа libavcodec52, теперь их не могу найти.

TatianaSh ()

На арчике код работает. Правда там пакет qt5-multimedia, судя по зависимостям, использует нормальную версию, а не окаменелый gstreamer0.10.

vazgen05 ★★ ()
Последнее исправление: vazgen05 (всего исправлений: 1)
Ответ на: комментарий от TatianaSh

А где искать яйца?

Подключить дебиановский репозиторий и честно, с помощью пакетного менеджера, установить gstreamer0.10-ffmpeg со всеми зависимостями.

anonymous ()
Ответ на: комментарий от Excavator

Можно ссылку?

Это не то?

dpkg -l | grep gstreamer0.10-plugins
ii  gstreamer0.10-plugins-base:amd64      0.10.36-1.1                        amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-doc        0.10.36-1.1                        all          GStreamer documentation for plugins from the "base" set
ii  gstreamer0.10-plugins-good:amd64      0.10.31-3+nmu1ubuntu5              amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugly:amd64      0.10.19-2                          amd64        GStreamer plugins from the "ugly" set
TatianaSh ()
Ответ на: комментарий от TatianaSh

Если правильно понял, предложили установить gstreamer0.10-plugins-bad:

apt-get install gstreamer0.10-plugins-bad
Из доступных для jessie только он отсутствует в системе. Может там и есть то, что обычно в plugins-[ffmpeg|libav]...

UP. Блин, так на Wheezy

apt-get install gstreamer0.10-plugins-ffmpeg
, почему-то казалось, что дистрибутив stable...

backbone ★★★★★ ()
Последнее исправление: backbone (всего исправлений: 3)
Ответ на: комментарий от backbone

Установила gstreamer0.10-ffmpeg

dpkg -l | grep gstreamer0.10-ffmpeg

ii  gstreamer0.10-ffmpeg:amd64            0.10.13-5                          amd64       FFmpeg plugin for GStreamer

В выводе приложения:

libGL error: pci id for fd 11: 80ee:beef, driver (null)
libGL error: core dri or dri2 extension not found
libGL error: failed to load driver: vboxvideo

(Animation:5652): GStreamer-CRITICAL **: gst_object_ref_sink: assertion `GST_IS_OBJECT (object)' failed
Cannot connect to server socket err = Нет такого файла или каталога
Cannot connect to server request channel
jack server is not running or cannot be started

На декодер больше не ругается, но видео по прежнему нет((

TatianaSh ()
Ответ на: комментарий от TatianaSh

failed to load driver: vboxvideo

Дык! А Virtualbox Guest Additions?

anonymous ()
Ответ на: комментарий от anonymous

Все есть.

lsmod

Module                  Size  Used by
isofs                  35125  0
udf                    84816  0
crc_itu_t               2651  1 udf
vboxsf                 38677  3
......

Кстати, gif`ки с помощью QMovie работают.

Вообще первые три строки ничему пока не мешали, я их даже в первом посте забыла скопировать.

Я зря на них не обращала внимания?

TatianaSh ()
Ответ на: комментарий от TatianaSh

Кстати, gif`ки с помощью QMovie работают.

Конечно работают. Они ведь не зависят от говностримера.

EXL ★★★★★ ()
Ответ на: комментарий от TatianaSh

Заюзай лучше QtAV, как посоветовали выше. Или выкинь каку в лице VirtualBox и Debian с протухшими и неработающими должным образом пакетами.

Короче советую стек, на котором точно всё «взлетит».

1. Ubuntu 14.04 LTS любой редакции
2. Qt 5.5.0 скачанный с официального сайта qt.io и поставленный в /opt (deb-пакеты с Qt пакуют криворукие мейнтейнеры-наркоманы)
3. Поставить VMWare Player, поскольку это единственная виртуальная машина, где должным образом работает 3D-ускорение, в отличие от чёрных экранов VirtualBox (QVideoWidget, насколько я знаю, использует его).
4. Установить нужные кодеки GStreamer (хотя вроде они и так уже в LTS-сборочке).
5. Запустить пример и радоваться рабочей программе.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от TatianaSh

Заодно проверь, нормально ли у тебя работают QtQuick-примеры и OpenGL-примеры в Qt Creator.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

ОС менять не вариант.

Вы меня опечалили, очень хочется QMediaPlayer осилить!

=(

TatianaSh ()
Ответ на: комментарий от EXL

Проверила и QtQuick-примеры, и OpenGL. Работают! ))

Ошибки libGL error появляются вместе с VB Guest Additions )

Если даже их (libGL error) нет, все равно остается вот это:

GStreamer-CRITICAL **: gst_object_ref_sink: assertion `GST_IS_OBJECT (object)' failed
Cannot connect to server socket err = Нет такого файла или каталога
Cannot connect to server request channel
jack server is not running or cannot be started

Можно как-нибудь это победить? ((

Нашла вот это, но решения, похоже, нет.

TatianaSh ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.