Unsolved Qt multimeia GStreamer-Critical error!
-
i start to debug my project there are errors:
(FMT:4908): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed(FMT:4908): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
(FMT:4908): GStreamer-CRITICAL **: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
my host is ubuntu 16.04, and my Qt is 5.7.1 version.
i try to play a .wmv with my project. and i can play the file with double-click
can someone helps me? -
@JiujiuTong Could be that some GStreamer plug-ins are missing. You can see here (for Ubuntu) what packages can be installed. I'm not sure which one contains WMV codec.
But first you should try to play the WMV file using the GStreamer command line client, see here https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/using.html -
@jsulm
thank you, i just install all the plugins and there is no such error
. I try to play the media .wmv with GStreamer command line client.
it works well . but anther erro happen when i try to play the medias, error info:
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be startedmy code is(partial) :
///ppath the directory of medias , path like "/home/XXX"
QDir ppath= getCurrentpathparent();
//list a QList contains media names
foreach(MEDIA_PLAYINFO var,list)
{
QString file = ppath.filePath(var.medianame);
if(QFile(file).exists())
{
QMediaContent cont(QUrl::fromLocalFile(file));
//m_playlist is a QMediaPlaylist
m_playlist->addMedia(cont);
}
}
m_playlist->setCurrentIndex(0);
m_playlist->setPlaybackMode(QMediaPlaylist::Loop);
///////////////
the error happen after m_playlist->setCurrentIndex(0) when debug.
this code runs with no error on windows , is there something wrong? thankyou!
or -
Hi,
Did you check that you have all plugin packages installed on your distribution ?
-
@SGaist
do you mean Gstreamer plugins?
i try to follow the tips "Install GStreamre on Ubuntu or Debian" inbelow
https://gstreamer.freedesktop.org/documentation/installing/on-linux.html
but the command fails ,so i do not know exactly how many plugins for GStreamer... -
What exact command did you use ?
-
@JiujiuTong On that page it is:
apt-get install ....
this for sure cannot work - you need to replace .... with actual package names.
Looks like GStreamer folks do not like/use Debian/Ubuntu :-) -
It might be something like
sudo apt-get install ubuntu-restricted-extras
some also had to do
apt-get install gstreamer0.10-alsabut it was in older ubuntu. Didnt try in newest.
https://ubuntuforums.org/showthread.php?t=1101525 -
@SGaist @jsulm @mrjj
i use the following command
sudo apt-get gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-devel-docs gstreamer1-plugins-base-devel gstreamer1-plugins-base-devel-docs gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer1-plugins-ugly-devel-docs gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras.
these plugins seems do not exist.so i use sudo apt-cache search gstreamer* , and install many plugins,
including gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-plugin-good
now there is only one warning:
GStreamer: unable to pause pause- "file:///home/tong/src/Wildlife.wmv"
warning: no decoder available for type "video/x-ms-asf"
seems need to install decoders...another question:
As my target is rapsberry pi3,i try to play video with default GStreamer command,the video is not fluency. i need to enable hardware-accelerate when using QT to play video, Does QT support this feature when play video? how to enable it ? thank you ! -
Install gstreamer1-plugins-ugly plug-in for video/x-ms-asf
-
@jsulm @SGaist @mrjj
there seems something strange, as Gstreamer0.10-plugins-ugly is no longer available, when i remove all gstreamer0.1 packages, i try to run my project, there is info:
defaultserviceprovider::requestservice(): no service found for - "org.qt-project.qt.mediaplayer".
then i reinstall all gstreamer0.1 packages.
the info is :
GStreamer: unable to pause pause- "file:///home/tong/src/Wildlife.wmv"
warning: no decoder available for type "video/x-ms-asf"
does it mean QT still use gstreamer0.1 package?
but gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly no long available.
i have installed gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-plugin-good. -
@JiujiuTong said in Qt multimeia GStreamer-Critical error!:
but gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly no long available
Are you sure: https://launchpad.net/ubuntu/xenial/+package/gstreamer0.10-plugins-ugly ?
Did you activate "universe", "restricted" and "multiverse" repositories? -
@jsulm
i have check all repositories in ubuntu software tab.
are there other ways to check the repositories ? -
@JiujiuTong Did you activate universe repository?
If so thensudo apt-get install gstreamer0.10-plugins-ugly
should be enough.
I'm usually using synaptic graphical tool - you can search for gstreamer0.10-plugins-ugly there as well and check whether universe repository is activated.
Also you can useapt-cache search gstreamer0.10-plugins-ugly
to search.
-
@jsulm
i have checked the four repositories in system settings ->software& updates->ubuntu software tab.
but failed to run sudo apt-get install gstreamer0.10-plugins-ugly
info:
Package gstreamer0.10-plugins-ugly is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another sourceE: Package 'gstreamer0.10-plugins-ugly' has no installation candidate
-
@JiujiuTong OK, looks like it is really not available on Ubuntu 16.04
-
-
@JiujiuTong Can you play this file with, for example, VLC?
-
IIRC, since 5.8 the backend uses GStreamer 1.0. Otherwise, you can re-build the QtMultmedia module yourself against GStreamer 1.0
On a side note, unless you need specific features or bug fixes of more recent versions, why not use your distribution provided Qt for development ?
-
@jsulm
yes,i can play file with VLC, but there are some other logical with my project, and i need to control playlist and other thing. so i think the best way is use functions provided by QT.