|
Bugzilla – Full Text Bug Listing |
| Summary: | gstreamer is Unable to play MPEG-1 or MPEG-2 video files on nVidia gpu | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Distribution | Reporter: | Jason Mader <jmader2> |
| Component: | Other | Assignee: | Dave Plater <davejplater> |
| Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | davejplater, ismail, jmader2, ohering, olaf, vliaskovitis |
| Version: | Leap 42.2 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
Output of zypper se -si gst on working system
MPEG-1 Video strace gst-discoverer-1.0 Front.mpg rpm-qa.trxt MPEG-1 in avi container MPEG-1 in matroska container rpm-qa non-working system gst-inspect-1.0 -a Dirac video in a matroska container gst-discoverer-1.0 --gst-debug-level=4 --gst-debug=libav Front.mpg |
||
Have you tried adding the extra repos and packages described in this link? : http://opensuse-guide.org/codecs.php I also guess you are not using gstreamer-plugins-vaapi for h/w video decoding? If the problem persists: A link to a test video with the exact format you are trying might be helpful for reproducing. Definitely not using gstreamer-plugins-vaapi, if that's installed then all other videos that play then would report the error "Could not initialize supporting library." If I install all the stuff mentioned on http://opensuse-guide.org/codecs.php, the MPEG-1 and MPEG-2 files still do not play. But our Leap 42.2 installation is quite similar to Leap 42.1 where these formats do play. Here's an example MPEG-1 that I can play on Leap 42.1, but not on Leap 42.2, https://media.ccsa.gmu.edu/s/uvattjgghod1tf5/Front.mpg idoenmez, do you think we can enable the MPEG-1 Video and MPEG-2 video decoders just like you did for MPEG-1 Audio Layer 3 and AC3? (In reply to Jason Mader from comment #2) > Definitely not using gstreamer-plugins-vaapi, if that's installed then all > other videos that play then would report the error "Could not initialize > supporting library." > > If I install all the stuff mentioned on > http://opensuse-guide.org/codecs.php, the MPEG-1 and MPEG-2 files still do > not play. > > But our Leap 42.2 installation is quite similar to Leap 42.1 where these > formats do play. > > Here's an example MPEG-1 that I can play on Leap 42.1, but not on Leap 42.2, > https://media.ccsa.gmu.edu/s/uvattjgghod1tf5/Front.mpg You don't mention which front end you are attempting to play the videos with. Can you post the output of zypper -si libavcodec please. totem. the player called "Videos". I provided the output of gst-discoverer-1.0, you can see that it cannot recognize the MPEG-1 or MPEG-2 content. $ zypper si libavcodec Reading installed packages... Loading repository data... Source package 'libavcodec' not found. (In reply to Jason Mader from comment #5) > totem. the player called "Videos". I provided the output of > gst-discoverer-1.0, you can see that it cannot recognize the MPEG-1 or > MPEG-2 content. > > $ zypper si libavcodec > Reading installed packages... > Loading repository data... > Source package 'libavcodec' not found. My mistake I meant zypper se libavcodec, if your instal from http://opensuse-guide.org/codecs.php worked then you should have ffmpeg from Packman. Does the command line "ffplay Front.mpg" play? If you have unrestricted gstreamer-plugins-ugly-orig-addon, gstreamer-plugins-libav libavcodec and libavformat you should be able to play almost any video. If ffplay fails then you must have the wrong set of ffmpeg libs. The last patent to expire for MPEG-2 6181712 expires on 30 January 2018, all the others have expired. $ rpm -qa gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav libavcodec57 libavformat57 ffmpeg
gstreamer-plugins-ugly-orig-addon-1.8.3-2.4.x86_64
libavformat57-3.3-6.8.1.x86_64
libavcodec57-3.3-6.8.1.x86_64
ffmpeg-3.3-6.8.1.x86_64
gstreamer-plugins-libav-1.8.3-2.7.x86_64
ffplay works just fine.
$ ffplay Front.mpg
ffplay version 3.3 Copyright (c) 2003-2017 the FFmpeg developers
built with gcc 4.8 (SUSE Linux)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include/ffmpeg --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-libcdio --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-netcdf --enable-vaapi --enable-vdpau --enable-libfdk_aac --enable-nonfree --enable-libmp3lame --enable-libtwolame --enable-libx264 --enable-libx265 --enable-libxvid
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
[mpegvideo @ 0x7fe808009240] Estimating duration from bitrate, this may be inaccurate
Input #0, mpegvideo, from 'Front.mpg':
Duration: 00:00:00.52, bitrate: 104857 kb/s
Stream #0:0: Video: mpeg1video, yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 104857 kb/s, 29.97 fps, 29.97 tbr, 1200k tbn, 29.97 tbc
3.48 M-V: -0.006 fd= 2 aq= 0KB vq= 376KB sq= 0B f=0/0
Removing myself since this apparently not the original openSUSE build of ffmpeg. I suspect that the problem lies with the "Multimedia Codecs" page. Which method did you use, zypper or "one click install"? On my system downgrading gstreamer-plugins-bad to the official version doesn't prevent MPEG-1 or MPEG-2 files from being recognized by gst-discoverer-1.0. Please post the output from "zypper se -si gst" and I will try and identify the gstreamer package that needs to be changed. S | Name | Type | Version | Arch | Repository --+-----------------------------------+-------------+-------------+--------+-------------------------------------------- i | GStreamer Multimedia Codecs | application | | noarch | Online updates for openSUSE Leap (standard) i | PackageKit-gstreamer-plugin | package | 1.1.3-2.3 | x86_64 | openSUSE-Leap-Oss i | gstreamer | package | 1.8.3-2.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | gstreamer-lang | package | 1.8.3-2.3.1 | noarch | Online updates for openSUSE Leap (standard) i | gstreamer-libnice | package | 0.1.13-4.5 | x86_64 | openSUSE-Leap-Oss i | gstreamer-plugin-gstclutter-3_0 | package | 3.0.18-1.5 | x86_64 | openSUSE-Leap-Oss i | gstreamer-plugins-bad | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | gstreamer-plugins-bad-lang | package | 1.8.3-5.5.4 | noarch | Packman Essentials i | gstreamer-plugins-base | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | gstreamer-plugins-base-lang | package | 1.8.3-5.3.2 | noarch | Online updates for openSUSE Leap (standard) i | gstreamer-plugins-cogl | package | 1.22.2-1.10 | x86_64 | openSUSE-Leap-Oss i | gstreamer-plugins-farstream | package | 0.2.8-1.5 | x86_64 | openSUSE-Leap-Oss i | gstreamer-plugins-good | package | 1.8.3-5.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | gstreamer-plugins-good-lang | package | 1.8.3-5.3.1 | noarch | Online updates for openSUSE Leap (standard) i | gstreamer-plugins-libav | package | 1.8.3-2.7 | x86_64 | Packman Essentials i | gstreamer-plugins-ugly | package | 1.8.3-2.4 | x86_64 | Packman Essentials i | gstreamer-plugins-ugly-lang | package | 1.8.3-2.4 | noarch | Packman Essentials i | gstreamer-plugins-ugly-orig-addon | package | 1.8.3-2.4 | x86_64 | Packman Essentials i | gstreamer-utils | package | 1.8.3-2.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | libclutter-gst-3_0-0 | package | 3.0.18-1.5 | x86_64 | openSUSE-Leap-Oss i | libgstadaptivedemux-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstallocators-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstapp-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstaudio-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstbadaudio-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstbadbase-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstbadvideo-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstbasecamerabinsrc-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstcodecparsers-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstfft-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstgl-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstmpegts-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstpbutils-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstphotography-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstreamer-1_0-0 | package | 1.8.3-2.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstriff-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstrtp-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstrtsp-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstsdp-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgsttag-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgsturidownloader-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgstvideo-1_0-0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | libgstwayland-1_0-0 | package | 1.8.3-5.5.4 | x86_64 | Packman Essentials i | libgupnp-dlna-backend-gstreamer | package | 0.10.5-3.2 | x86_64 | openSUSE-Leap-Oss i | typelib-1_0-ClutterGst-3_0 | package | 3.0.18-1.5 | x86_64 | openSUSE-Leap-Oss i | typelib-1_0-Gst-1_0 | package | 1.8.3-2.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | typelib-1_0-GstAudio-1_0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | typelib-1_0-GstPbutils-1_0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | typelib-1_0-GstTag-1_0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) i | typelib-1_0-GstVideo-1_0 | package | 1.8.3-5.3.2 | x86_64 | Online updates for openSUSE Leap (standard) It seems that the Packman Essentials gstreamer-plugins-libav interferes with MPEG-1/2 Video playback that's provided by packman:gstreamer-plugins-ugly-orig-addon (In reply to Jason Mader from comment #12) > It seems that the Packman Essentials gstreamer-plugins-libav interferes with > MPEG-1/2 Video playback that's provided by > packman:gstreamer-plugins-ugly-orig-addon I removed gstreamer-plugins-libav from my system and still had gst MPEG-1 and 2 playback. I'll parse your list and try to duplicate your problem later on. Dave, you don't need packman:gstreamer-plugins-libav to play MPEG-1/2 Video; you need packman:gstreamer-plugins-ugly-orig-addon. But once packman:gstreamer-plugins-libav get's installed then MPEG-1/2 Video playback stops working with the error. And then removing packman:gstreamer-plugins-libav MPEG-1/2 Video playback will work again (but so many other formats need packman:gstreamer-plugins-libav to play, so they'll stop working.) (In reply to Jason Mader from comment #14) > Dave, you don't need packman:gstreamer-plugins-libav to play MPEG-1/2 Video; > you need packman:gstreamer-plugins-ugly-orig-addon. But once > packman:gstreamer-plugins-libav get's installed then MPEG-1/2 Video playback > stops working with the error. And then removing > packman:gstreamer-plugins-libav MPEG-1/2 Video playback will work again (but > so many other formats need packman:gstreamer-plugins-libav to play, so > they'll stop working.) I think I've managed to get my gstreamer plugins to match yours but without gstreamer-plugins-libav I do lose x264 and 5 capabilities though reinstalling it and removing gstreamer-plugins-ugly-orig-addon doesn't lose MPEG-1/2 capabilities. I'm wondering if gstreamer-plugins-ugly-orig-addon is even necessary. zypper se -si gstreamer|grep pacman i | gstreamer-plugins-bad | package | 1.8.3-5.5.4 | x86_64 | pacman i | gstreamer-plugins-libav | package | 1.8.3-2.7 | x86_64 | pacman i | gstreamer-plugins-ugly | package | 1.8.3-2.4 | x86_64 | pacman i | gstreamer-plugins-ugly-doc | package | 1.8.3-2.4 | x86_64 | pacman i | gstreamer-plugins-ugly-lang | package | 1.8.3-2.4 | noarch | pacman All the rest of my gstreamer is up to date from openSUSE, I also have a number of gstreamer-0_10 packages which I can't remove yet due to key packages which depend on it but I maintain most of them so I'll take steps to rectify this in the near future: i | gstreamer-0_10 | package | 0.10.36-16.2 | x86_64 | oss i | gstreamer-0_10-lang | package | 0.10.36-16.2 | noarch | oss i | gstreamer-0_10-plugin-esd | package | 0.10.31-17.3.1 | x86_64 | update i | gstreamer-0_10-plugin-gnomevfs | package | 0.10.36-14.6 | x86_64 | oss i | gstreamer-0_10-plugins-bad | package | 0.10.23-27.1 | x86_64 | update i | gstreamer-0_10-plugins-bad-lang | package | 0.10.23-27.1 | noarch | update i | gstreamer-0_10-plugins-base | package | 0.10.36-14.6 | x86_64 | oss i | gstreamer-0_10-plugins-base-lang | package | 0.10.36-14.6 | noarch | oss i | gstreamer-0_10-plugins-good | package | 0.10.31-17.3.1 | x86_64 | update i | gstreamer-0_10-plugins-good-lang | package | 0.10.31-17.3.1 | noarch | update i | gstreamer-0_10-plugins-ugly | package | 0.10.19-17.3 | x86_64 | oss i | gstreamer-0_10-plugins-ugly-lang | package | 0.10.19-17.3 | noarch | oss i | libgstreamer-0_10-0 | package | 0.10.36-16.2 | x86_64 | oss i | python-gstreamer-0_10 | package | 0.10.22-14.4 | x86_64 | oss I'm using gst-discoverer-1.0 to test, I assume that this isn't a totem bug. We need packman:gstreamer-plugins-ugly-orig-addon to play Microsoft ASF files,
Topology:
container: Advanced Streaming Format (ASF)
video: Windows Media Video 9 Screen
but, not having it installed or having it installed, MPEG-1/2 Video always has the error, "No valid frames decoded before end of stream" while packman:gstreamer-plugins-libav is installed.
I'm not sure how you're getting different results.
Created attachment 725987 [details]
Output of zypper se -si gst on working system
Try matching my gstreamer, ignore the 0_10 packages and for now remove gstreamer-plugins-ugly-orig-addon. gstreamer-plugins-libav is where most of my capabilities come from via ffmpeg codecs.
This is a list of ffmpeg libs that you should ensure are from Packman, the latest version that gstreamer-plugins-libav should be built against is 3.3.
S | Name | Type | Version | Arch | Repository
--+---------------------+---------+---------+--------+-----------
v | libavcodec-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavcodec57 | package | 3.2.4-0 | x86_64 | rpms
v | libavdevice-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavdevice57 | package | 3.2.4-0 | x86_64 | rpms
v | libavfilter-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavfilter6 | package | 3.2.4-0 | x86_64 | rpms
v | libavformat-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavformat57 | package | 3.2.4-0 | x86_64 | rpms
v | libavresample-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavresample3 | package | 3.2.4-0 | x86_64 | rpms
v | libavutil-devel | package | 3.2.4-0 | x86_64 | rpms
v | libavutil55 | package | 3.2.4-0 | x86_64 | rpms
You don't need the devel packages.
I couldn't retrieve the video from the link you posted, can you attach your Mpeg test videos. These are the libraries I've had installed all along. S | Name | Type | Version | Arch | Repository --+----------------+---------+-----------+--------+------------------- i | libavcodec57 | package | 3.3-6.8.1 | x86_64 | Packman Essentials i | libavdevice57 | package | 3.3-6.8.1 | x86_64 | Packman Essentials i | libavfilter6 | package | 3.3-6.8.1 | x86_64 | Packman Essentials i | libavformat57 | package | 3.3-6.8.1 | x86_64 | Packman Essentials i | libavresample3 | package | 3.3-6.8.1 | x86_64 | Packman Essentials i | libavutil55 | package | 3.3-6.8.1 | x86_64 | Packman Essentials Created attachment 726039 [details]
MPEG-1 Video
Can you execute "strace gst-discoverer-1.0 Front.mpg", save the output in a text file and attach it to this bug. Does 'zypper dup --from packman' fix it by any chance? Created attachment 726234 [details]
strace gst-discoverer-1.0 Front.mpg
(In reply to Olaf Hering from comment #22) > Does 'zypper dup --from packman' fix it by any chance? Nope, it made these changes, The following NEW package is going to be installed: libtxc_dxtn The following package is going to be REMOVED: s2tc but still "No valid frames decoded before end of stream" on MPEG playback. Created attachment 726362 [details]
rpm-qa.trxt
It happens to work for me. Please attach rpm-qa.txt:
rpm -qa --qf '%{NAME} %{VERSION} %{RELEASE} %{DISTRIBUTION}\n' | \
sort | tee /dev/shm/rpm-qa.txt
Created attachment 726368 [details]
MPEG-1 in avi container
execute gst-discoverer-1.0 Front.avi and post output.
Created attachment 726369 [details]
MPEG-1 in matroska container
Execute gst-discoverer-1.0 Front.mkv and post output
Execute gst-inspect-1.0 -a > inspect.txt and attach inspect.txt. Created attachment 726442 [details]
rpm-qa non-working system
Created attachment 726443 [details]
gst-inspect-1.0 -a
non-working system
Created attachment 726487 [details]
Dirac video in a matroska container
I need the result from running gst-discoverer-1.0 on the mpeg-1 coded files in avi and mkv (matroska) containers, also the attached Frontvp8.mkv file which is a vpx encoded video in a matroska container. Both vpx and matroska aren't patent encumbered and are available in the main distribution.
As you can see from Olaf's comment you have a unique problem.
It appears to me that your gsstreamer system is unable to read mpeg containers as opposed to the actual mpeg 1 and 2 video codecs.
Set needinfo I think you should just run 'zypper dup' to see which pkgs will be replaced. (In reply to Olaf Hering from comment #33) > I think you should just run 'zypper dup' to see which pkgs will be replaced. See comment #22, I'm working with the same gstreamer as the reporter and I don't get the problem. There's something on the reporter's system that's interfering with gstreamer, gstreamer-plugins-libav can only come from multimedia:libs or packman. Although your version and release numbers match mine your gstreamer-plugins-libav is different to mine, your plugins good is also different. A force install of all of your gst libraries should fix your problem. Also post the output of zypper lr "Packman Essentials" so I can see the url that you use, maybe that will explain something. Alias : packman Name : Packman Essentials URI : http://packman.inode.at/suse/openSUSE_Leap_42.2/Essentials/ Enabled : Yes GPG Check : (r ) Yes Priority : 99 (default priority) Autorefresh : On Keep Packages : Off Type : rpm-md GPG Key URI : Path Prefix : / Parent Service : Keywords : --- Repo Info Path : /etc/zypp/repos.d/packman.repo MD Cache Path : /var/cache/zypp/raw/packman (In reply to Jason Mader from comment #36) > Alias : packman > Name : Packman Essentials > URI : http://packman.inode.at/suse/openSUSE_Leap_42.2/Essentials/ > Enabled : Yes > GPG Check : (r ) Yes > Priority : 99 (default priority) > Autorefresh : On > Keep Packages : Off > Type : rpm-md > GPG Key URI : > Path Prefix : / > Parent Service : > Keywords : --- > Repo Info Path : /etc/zypp/repos.d/packman.repo > MD Cache Path : /var/cache/zypp/raw/packman This explains your problem. A complex repository structure, understood more by Olaf than myself was setup to prevent openSUSE/Packman gstreamer problems. Essentials is one of the internal repositories that make up the whole Packman repo and by including it at the end of your repo url you have bypassed the correct gstreamer in Packman. You need to delete Essentials from the end of your: URI : http://packman.inode.at/suse/openSUSE_Leap_42.2/Essentials/ or delete the repository and open Yast Software Repositories and select "Add" then "community repositories" then add the Packman reository from there. Following this you need to force install your Packman gstreamer packages. I'm confident that this will solve your problem. I’ve reinstalled Leap 42.2 and changed the repository URI. I cannot play the MPEG-1/2 Video files, same error, No valid frames decoded before end of stream. Alias : Packman Repository Name : Packman Repository URI : http://packman.inode.at/suse/openSUSE_Leap_42.2/ Enabled : Yes GPG Check : (r ) Yes Priority : 99 (default priority) Autorefresh : On Keep Packages : Off Type : rpm-md GPG Key URI : Path Prefix : Parent Service : Keywords : --- Repo Info Path : /etc/zypp/repos.d/Packman Repository.repo MD Cache Path : /var/cache/zypp/raw/Packman Repository I tried `zypper dup --from 'Packman Repository'`: "Nothing to do." S | Name | Type | Version | Arch | Repository --+-----------------------------------+---------+-------------+--------+------------------- i | gstreamer | package | 1.8.3-2.3.1 | x86_64 | Online updates for openSUSE Leap (standard) i | gstreamer-plugins-libav | package | 1.8.3-2.7 | x86_64 | Packman Repository i | gstreamer-plugins-ugly-orig-addon | package | 1.8.3-2.4 | x86_64 | Packman Repository i | libavcodec57 | package | 3.3-6.8.1 | x86_64 | Packman Repository i | libavformat57 | package | 3.3-6.8.1 | x86_64 | Packman Repository I still need you to post the results from gst-discoverer-1.0 when run on the avi and two mkv versions of Front that I attached. Also run gst-discoverer-1.0 --gst-debug-level=4 --gst-debug=libav Front.mpg > discover.txt and attach discover.txt Analyzing file:///home/jason/Desktop/Front.mkv Done discovering file:///home/jason/Desktop/Front.mkv An error was encountered while discovering the file No valid frames decoded before end of stream Analyzing file:///home/jason/Desktop/Front.avi Done discovering file:///home/jason/Desktop/Front.avi An error was encountered while discovering the file No valid frames decoded before end of stream Created attachment 727179 [details]
gst-discoverer-1.0 --gst-debug-level=4 --gst-debug=libav Front.mpg
non-working system
Updating to the latest packages fixed the problem. v | Packman Essentials | ffmpeg | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Online updates for openSUSE Leap (standard) | gstreamer-plugins-good | 1.8.3-5.3.1 | 1.8.3-5.6.1 | x86_64 v | Online updates for openSUSE Leap (standard) | gstreamer-plugins-good-lang | 1.8.3-5.3.1 | 1.8.3-5.6.1 | noarch v | Packman Essentials | gstreamer-plugins-libav | 1.8.3-2.7 | 1.8.3-2.8 | x86_64 v | Packman Essentials | libavcodec57 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Packman Essentials | libavdevice57 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Packman Essentials | libavfilter6 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Packman Essentials | libavformat57 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Packman Essentials | libavresample3 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 v | Packman Essentials | libavutil55 | 3.3-6.8.1 | 3.3-6.11.1 | x86_64 I'd still love to know what went wrong or was it using Essentials as a repo? There's bug #1041794 which has just been fixed and would have resulted in a gstreamer rebuild. What video hardware do you have? The bug I referred to resulted in the disabling of cuda hardware extensions in ffmpeg. Even a computer with the Essentials as the repo, after the update works. All the computers involved have NVIDIA graphics (with the same driver) Glad you have your video working, may I ask you what drivers you use for your computer's nvidia graphics and the results of (as root) hwinfo --gfxcard on each computer. Here are two examples, but MPEG Video wasn't working on any of the computers with Leap 42.2 installations with NVIDIA (we do not use other graphics, so I have no other example). Driver: NVIDIA-Linux-x86_64-378.13.run
25: PCI 200.0: 0300 VGA compatible controller (VGA)
[Created at pci.378]
Unique ID: B35A.4kNYRDtRQF3
Parent ID: _Znp.nMBktMhAWbC
SysFS ID: /devices/pci0000:00/0000:00:02.0/0000:02:00.0
SysFS BusID: 0000:02:00.0
Hardware Class: graphics card
Model: "nVidia GK106GL [Quadro K4000]"
Vendor: pci 0x10de "nVidia Corporation"
Device: pci 0x11fa "GK106GL [Quadro K4000]"
SubVendor: pci 0x10de "nVidia Corporation"
SubDevice: pci 0x097c
Revision: 0xa1
Driver: "nvidia"
Driver Modules: "nvidia"
Memory Range: 0xfa000000-0xfaffffff (rw,non-prefetchable)
Memory Range: 0x20fe0000000-0x20fefffffff (ro,non-prefetchable)
Memory Range: 0x20ff0000000-0x20ff1ffffff (ro,non-prefetchable)
I/O Ports: 0xe000-0xefff (rw)
Memory Range: 0xfb000000-0xfb07ffff (ro,non-prefetchable,disabled)
IRQ: 37 (15024763 events)
Module Alias: "pci:v000010DEd000011FAsv000010DEsd0000097Cbc03sc00i00"
Driver Info #0:
Driver Status: nouveau is not active
Driver Activation Cmd: "modprobe nouveau"
Driver Info #1:
Driver Status: nvidia_drm is active
Driver Activation Cmd: "modprobe nvidia_drm"
Driver Info #2:
Driver Status: nvidia is active
Driver Activation Cmd: "modprobe nvidia"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #9 (PCI bridge)
Primary display adapter: #25
---
27: PCI 300.0: 0300 VGA compatible controller (VGA)
[Created at pci.378]
Unique ID: svHJ.sWjAI4_xKX2
Parent ID: _Znp.kuTAJnFSM93
SysFS ID: /devices/pci0000:00/0000:00:02.0/0000:03:00.0
SysFS BusID: 0000:03:00.0
Hardware Class: graphics card
Model: "nVidia GF100GL [Quadro 4000]"
Vendor: pci 0x10de "nVidia Corporation"
Device: pci 0x06dd "GF100GL [Quadro 4000]"
SubVendor: pci 0x10de "nVidia Corporation"
SubDevice: pci 0x0780
Revision: 0xa1
Driver: "nvidia"
Driver Modules: "nvidia"
Memory Range: 0xee000000-0xeeffffff (rw,non-prefetchable)
Memory Range: 0xf0000000-0xf7ffffff (ro,non-prefetchable)
Memory Range: 0xf8000000-0xf9ffffff (ro,non-prefetchable)
I/O Ports: 0xe000-0xefff (rw)
Memory Range: 0xef000000-0xef07ffff (ro,non-prefetchable,disabled)
IRQ: 41 (93319611 events)
Module Alias: "pci:v000010DEd000006DDsv000010DEsd00000780bc03sc00i00"
Driver Info #0:
Driver Status: nouveau is not active
Driver Activation Cmd: "modprobe nouveau"
Driver Info #1:
Driver Status: nvidia_drm is active
Driver Activation Cmd: "modprobe nvidia_drm"
Driver Info #2:
Driver Status: nvidia is active
Driver Activation Cmd: "modprobe nvidia"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #10 (PCI bridge)
Primary display adapter: #27
Can you reinstall your ffmpeg libraries from: http://pmbs-api.links2linux.org:8080/home:/davepl/Leap_42.2/ and see if the problem comes back. I think this is a bug in gstreamer-plugins-libav, it's not supposed to use libavcodec hardware codecs and this use has been disabled in 1.9.x versions. The problem returns with those packages.
# gst-discoverer-1.0 Front.mpg
Analyzing file:///home/jason/Desktop/Front.mpg
Done discovering file:///home/jason/Desktop/Front.mpg
Topology:
video: MPEG-1 Video
Properties:
Duration: 0:00:15.907000000
Seekable: yes
Tags:
video codec: MPEG-1 Video
bitrate: 12450509
# zypper in davepl:ffmpeg
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 10 packages are going to be upgraded:
ffmpeg libavcodec57 libavdevice57 libavfilter6 libavformat57 libavresample3 libavutil55 libpostproc54 libswresample2 libswscale4
10 packages to upgrade.
Overall download size: 7.7 MiB. Already cached: 0 B. After the operation, additional 1.7 MiB will be used.
Continue? [y/n/...? shows all options] (y): y
Retrieving package libavutil55-3.3.1-157.1.x86_64 (1/10), 184.0 KiB (444.0 KiB unpacked)
Retrieving: libavutil55-3.3.1-157.1.x86_64.rpm ......[done (18.0 KiB/s)]
Retrieving package libswscale4-3.3.1-157.1.x86_64 (2/10), 165.0 KiB (568.5 KiB unpacked)
Retrieving: libswscale4-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libswresample2-3.3.1-157.1.x86_64 (3/10), 73.0 KiB (143.0 KiB unpacked)
Retrieving: libswresample2-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libpostproc54-3.3.1-157.1.x86_64 (4/10), 69.4 KiB (123.3 KiB unpacked)
Retrieving: libpostproc54-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libavresample3-3.3.1-157.1.x86_64 (5/10), 71.3 KiB (151.6 KiB unpacked)
Retrieving: libavresample3-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libavcodec57-3.3.1-157.1.x86_64 (6/10), 4.0 MiB ( 11.7 MiB unpacked)
Retrieving: libavcodec57-3.3.1-157.1.x86_64.rpm ......[done (1001.0 KiB/s)]
Retrieving package libavformat57-3.3.1-157.1.x86_64 (7/10), 860.9 KiB ( 2.2 MiB unpacked)
Retrieving: libavformat57-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libavfilter6-3.3.1-157.1.x86_64 (8/10), 762.8 KiB ( 2.4 MiB unpacked)
Retrieving: libavfilter6-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package libavdevice57-3.3.1-157.1.x86_64 (9/10), 78.1 KiB (155.1 KiB unpacked)
Retrieving: libavdevice57-3.3.1-157.1.x86_64.rpm ......[done]
Retrieving package ffmpeg-3.3.1-157.1.x86_64 (10/10), 1.5 MiB ( 2.3 MiB unpacked)
Retrieving: ffmpeg-3.3.1-157.1.x86_64.rpm ......[done]
Checking for file conflicts: ......[done]
( 1/10) Installing: libavutil55-3.3.1-157.1.x86_64 ......[done]
( 2/10) Installing: libswscale4-3.3.1-157.1.x86_64 ......[done]
( 3/10) Installing: libswresample2-3.3.1-157.1.x86_64 ......[done]
( 4/10) Installing: libpostproc54-3.3.1-157.1.x86_64 ......[done]
( 5/10) Installing: libavresample3-3.3.1-157.1.x86_64 ......[done]
( 6/10) Installing: libavcodec57-3.3.1-157.1.x86_64 ......[done]
( 7/10) Installing: libavformat57-3.3.1-157.1.x86_64 ......[done]
( 8/10) Installing: libavfilter6-3.3.1-157.1.x86_64 ......[done]
( 9/10) Installing: libavdevice57-3.3.1-157.1.x86_64 ......[done]
(10/10) Installing: ffmpeg-3.3.1-157.1.x86_64 ......[done]
There are some running programs that might use files deleted by recent upgrade. You may wish to check and restart some of them. Run 'zypper ps -s' to list these programs.
# gst-discoverer-1.0 Front.mpg
Analyzing file:///home/jason/Desktop/Front.mpg
Done discovering file:///home/jason/Desktop/Front.mpg
An error was encountered while discovering the file
No valid frames decoded before end of stream
Thanks for confirming that this is a bug in gstreamer-plugins-libav when it uses cuvid codecs on nVidia graphics hardware. Can you please test the patched gstreamer-plugins-libav with the ffmpeg from the same repository: http://pmbs-api.links2linux.org:8080/home:/davepl/Leap_42.2/ If cuvid is ever enabled in ffmpeg again this will prevent further problems. (In reply to Dave Plater from comment #51) > Can you please test the patched gstreamer-plugins-libav with the ffmpeg from > the same repository: > http://pmbs-api.links2linux.org:8080/home:/davepl/Leap_42.2/ I'm not sure what you're asking me to do. (In reply to Jason Mader from comment #52) > (In reply to Dave Plater from comment #51) > > Can you please test the patched gstreamer-plugins-libav with the ffmpeg from > > the same repository: > > http://pmbs-api.links2linux.org:8080/home:/davepl/Leap_42.2/ > > I'm not sure what you're asking me to do. In the same repository as you installed libavcodec57-3.3.1-157.1.x86_64 and friends is gstreamer-plugins-libav-1.8.3-5.1.x86_64.rpm which has a fix for this bug. I would appreciate if you can test that it does indeed fix this bug and then I can enable cuvid and cuda extensions in the Packman ffmpeg build. I’ve refreshed that repository, but I’m not seeing any other version of gstreamer-plugins-libav. (In reply to Jason Mader from comment #54) > I’ve refreshed that repository, but I’m not seeing any other version of > gstreamer-plugins-libav. Sorry, publishing was disabled. You should see it now after a refresh. # zypper up davepl:gstreamer-plugins-libav
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following package is going to be upgraded:
gstreamer-plugins-libav
1 package to upgrade.
Overall download size: 171.8 KiB. Already cached: 0 B. After the operation, additional 40.5 KiB will be used.
Continue? [y/n/...? shows all options] (y): y
Retrieving package gstreamer-plugins-libav-1.8.3-5.1.x86_64 (1/1), 171.8 KiB (441.5 KiB unpacked)
Retrieving: gstreamer-plugins-libav-1.8.3-5.1.x86_64.rpm .....[done (47.6 KiB/s)]
Checking for file conflicts: .....[done]
(1/1) Installing: gstreamer-plugins-libav-1.8.3-5.1.x86_64 .....[done]
There are some running programs that might use files deleted by recent upgrade. You may wish to check and restart some of them. Run 'zypper ps -s' to list these programs.
# gst-discoverer-1.0 Front.mpg
Analyzing file:///home/jason/Desktop/Front.mpg
Done discovering file:///home/jason/Desktop/Front.mpg
Topology:
video: MPEG-1 Video
Properties:
Duration: 0:00:15.907000000
Seekable: yes
Tags:
video codec: MPEG-1 Video
bitrate: 12450509
# zypper se -si ffmpeg gstreamer-plugins-libav libavcodec57 libavdevice57 libavfilter6 libavformat57 libavresample3 libavutil55 libswresample2 libswscale4
Refreshing service 'Center for Collision Safety and Analysis'.
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+-------------------------+---------+-------------+--------+------------------
i | ffmpeg | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | gstreamer-plugins-libav | package | 1.8.3-5.1 | x86_64 | davepl
i | libavcodec57 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libavdevice57 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libavfilter6 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libavformat57 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libavresample3 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libavutil55 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libswresample2 | package | 3.3.1-157.1 | x86_64 | (System Packages)
i | libswscale4 | package | 3.3.1-157.1 | x86_64 | (System Packages)
Thanks for helping to fix this bug, I can submit the patched plugins-libav. |
On Leap 42.2 we’ve been unable to play MPEG videos such as, Front.mpg: MPEG sequence, v1, progressive Y'CbCr 4:2:0 video, LD-TV 640P, 4:3, 29.97 fps High_Speed.mpg: MPEG sequence, v2, program multiplex $ gst-discoverer-1.0 Front.mpg Analyzing file:///home/jason/Desktop/Front.mpg Done discovering file:///home/jason/Desktop/Front.mpg An error was encountered while discovering the file No valid frames decoded before end of stream And I believe, this is the plugin that should provide support, gstreamer-plugins-bad-1.8.3-5.5.4.x86_64 ffmpeg-3.3-6.8.1.x86_64 whereas, on Leap 42.1, $ gst-discoverer-1.0 Front.mpg Analyzing file:///home/jason/Front.mpg Done discovering file:///home/jason/Front.mpg Topology: video: MPEG-1 Video Properties: Duration: 0:00:15.907000000 Seekable: yes Tags: video codec: MPEG-1 Video bitrate: 12450509 $ gst-discoverer-1.0 High_Speed.mpg Analyzing file:///home/jason/High_Speed.mpg Done discovering file:///home/jason/High_Speed.mpg Topology: container: MPEG-2 System Stream audio: MPEG-1 Layer 2 (MP2) video: MPEG-2 Video (Main Profile) Properties: Duration: 0:00:21.720000000 Seekable: yes Tags: audio codec: MPEG-1 Audio has crc: false channel mode: stereo nominal bitrate: 256000 bitrate: 256000 video codec: MPEG-2 Video gstreamer-plugins-bad-1.8.2-113.1.x86_64 ffmpeg-3.1.1-82.1.x86_64 On Leap 42.2, gst debug shows, 0:00:00.363383039 2683 0x7fa258002000 WARN videodecoder gstvideodecoder.c:1167:gst_video_decoder_sink_event_default:<avdec_mpeg2_cuvid0> error: No valid frames decoded before end of stream 0:00:00.363387785 2683 0x7fa258002000 WARN videodecoder gstvideodecoder.c:1167:gst_video_decoder_sink_event_default:<avdec_mpeg2_cuvid0> error: no valid frames found 0:00:00.363404380 2683 0x7fa258002000 INFO GST_ERROR_SYSTEM gstelement.c:1879:gst_element_message_full:<avdec_mpeg2_cuvid0> posting message: No valid frames decoded before end of stream 0:00:00.363433263 2683 0x7fa258002000 INFO GST_ERROR_SYSTEM gstelement.c:1902:gst_element_message_full:<avdec_mpeg2_cuvid0> posted error message: No valid frames decoded before end of stream 0:00:00.363460628 2683 0x2485b20 WARN discoverer gstdiscoverer.c:1321:handle_message:<avdec_mpeg2_cuvid0> Got an error [debug:gstvideodecoder.c(1167): gst_video_decoder_sink_event_default (): /GstPipeline:Discoverer/GstURIDecodeBin:discoverer-uri/GstDecodeBin:decodebin1/avdec_mpeg2_cuvid:avdec_mpeg2_cuvid0: Whereas on Leap 42.1, the gst_video_decoder is "avdec_mpeg2video".