Bug #1977

vlc will no longer play mepgts files claiming to be mp4

christian - over 2 years ago - . Updated over 2 years ago.

% Done:



Upon running vlc from the terminal and trying to open a video, the errors are:

[00007f5950c6bfe0] main decoder error: Timestamp conversion failed for 86445162667: no reference clock
[00007f5950c6bfe0] main decoder error: Could not convert timestamp 0 for mpg123

If it matters, I'm using intel graphics on x86_64 systemd parabola.


plays.txt (58.8 KB) plays.txt christian, 2018-09-11 05:15 PM
fails1.txt (953 KB) fails1.txt christian, 2018-09-11 05:21 PM
fails2.txt (1010 KB) fails2.txt christian, 2018-09-11 05:21 PM



Updated by ovruni over 2 years ago

vlc works for me


Updated by freemor over 2 years ago

Works for me also. Perhaps the OP is missing one of the many optional depends.

Can you please add the output of:

pacman -Qi vlc

To this bug report.


Updated by christian over 2 years ago

Upon sudo pacman -Qi vlc:

Name : vlc
Version : 3.0.4-1
Description : Multi-platform MPEG, VCD/DVD, and DivX player
Architecture : x86_64
Licenses : LGPL2.1 GPL2
Groups : None
Provides : None
Depends On : a52dec libdvbpsi libxpm libdca libproxy lua libmatroska
taglib libmpcdec ffmpeg faad2 libupnp libmad libmpeg2
xcb-util-keysyms libtar libxinerama libsecret libarchive
qt5-base qt5-x11extras qt5-svg freetype2 fribidi
harfbuzz fontconfig libxml2 gnutls libplacebo
Optional Deps : avahi: service discovery using bonjour protocol [installed]
gst-plugins-base-libs: for libgst plugins [installed]
libdvdcss: decoding encrypted DVDs
libavc1394: devices using the 1394ta AV/C [installed]
libdc1394: IEEE 1394 access plugin
kwallet: kwallet keystore
libva-vdpau-driver: vdpau backend nvidia
libva-intel-driver: video backend intel
libbluray: Blu-Ray video input [installed]
flac: Free Lossless Audio Codec plugin [installed]
twolame: TwoLAME mpeg2 encoder plugin [installed]
libgme: Game Music Emu plugin
vcdimager: navigate VCD with libvcdinfo
libmtp: MTP devices discovery [installed]
libsystemd: udev services discovery [installed]
smbclient: SMB access plugin
libcdio: audio CD playback
ttf-freefont: subtitle font
ttf-dejavu: subtitle font [installed]
libssh2: sftp access [installed]
libnfs: NFS access
mpg123: mpg123 codec [installed]
protobuf: chromecast streaming [installed]
libmicrodns: mDNS services discovery (chromecast etc)
lua-socket: http interface
live-media: RTSP input
libdvdread: DVD input module
libdvdnav: DVD with navigation input module
libogg: Ogg and OggSpots codec [installed]
libshout: shoutcast/icecast output plugin [installed]
libmodplug: MOD output plugin [installed]
libvpx: VP8 and VP9 codec [installed]
libvorbis: Vorbis decoder/encoder [installed]
speex: Speex codec [installed]
opus: opus codec [installed]
libtheora: theora codec [installed]
libpng: PNG support [installed]
libjpeg-turbo: JPEG support [installed]
librsvg: SVG plugin [installed]
x264: H264 encoding [installed]
x265: HEVC/H.265 encoder [installed]
zvbi: VBI/Teletext decoding
libass: Subtitle support [installed]
aribb24: ARIB subtitles
libkate: Kate codec
libtiger: Tiger rendering for Kate streams
sdl_image: SDL image support
aalib: ASCII art video output [installed]
libcaca: colored ASCII art video output [installed]
libpulse: PulseAudio audio output [installed]
alsa-lib: ALSA audio output [installed]
jack: jack audio server [installed]
libsamplerate: audio Resampler [installed]
libsoxr: SoX audio Resampler [installed]
chromaprint: Chromaprint audio fingerprinter
lirc: lirc control
libgoom2: Goom visualization
projectm: ProjectM visualisation
ncurses: ncurses interface [installed]
libnotify: notification plugin [installed]
gtk3: notification plugin [installed]
Required By : None
Optional For : None
Conflicts With : vlc-plugin
Replaces : vlc-plugin
Installed Size : 57.60 MiB
Packager : Levente Polyak <>
Build Date : Mon 03 Sep 2018 07:00:33 PM EDT
Install Date : Mon 03 Sep 2018 09:09:31 PM EDT
Install Reason : Explicitly installed
Install Script : No
Validated By : Signature

I'll note that it was working fine about a week ago.


Updated by freemor over 2 years ago

I've been doing some research on this error. It is related to a massive desyncronation of audo and video. Usually caused by bad video rendering options being set.

Please check your Audio and Video rendering setting in VLC.
Try reseting VLC to it's defaults (easy way is to rename the ~/.config/vlc/ folder to hide it from vlc.

The other thing that might be causing this is:
Video is waaaay to heavy for your system (trying to play 4k content on old machine, etc.)
Video card needs blobs and thus is way too slow.
The video was encoded incorrectly.

Is this happening with all MP4s or just one or two?
What are your system specs (CPU, Video Card, etc) ?


Updated by christian over 2 years ago

Renaming ~/.config/vlc/ did not help, but all the mp4s I had been testing were large files in 720p. Smaller mp4s do in fact play for me still. I'm certain though that some of the files which now cause the error had played fine for me a week or two ago. CPU is intel i5, graphics are Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller.


Updated by freemor over 2 years ago

Ok, Well this is good and diagnostic info. Thanks.
The fact that smaller MP4s still play tells up it's not a problem with decoding the MP4s. So VLC is working, just something is making rendering on your system very slow.
Since my Core 2 DUO can easily handle 720p That certainly isn't too heavy a video for the system.

Now that I know you have an Intel GPU can you please try installing the libva-intel-driver. Installing the vulkan-intel driver probably wouldn't hurt but I'm not sure it'll help with Videos.

The question in my mind is what's changed on you machine to cause this. And why can't we reproduce it (it may be something to do with your CPU/GPU combo. Or some other system oddity that causing this.)

Try the above.. If still failing I'll have to get further feeed back from you.


Updated by christian over 2 years ago

Installed libva-intel-driver, no luck. Installed vulkan-intel on top of that, still no luck.


Updated by freemor over 2 years ago

K, Time to get a look at what VLC is (or isn't) doing.

Can you run:

VLC_VERBOSE=3 vlc <name of video that fails> > fails.txt

VLC_VERBOSE=3 vlc <name of video that plays> > plays.txt

replacing the <name of...> parts with the appropriate mp4 file names
Then post fails.txt and plays.txt here.


Updated by christian over 2 years ago

Okay, the txt files produced by the commands "VLC_VERBOSE=3 vlc plays.mp4 > plays.txt" and "VLC_VERBOSE=3 vlc fails.mp4 > fails.txt" are both entirely blank for some reason, but I see a lot of stuff in the terminal. Worth noting is that all the errors with the bad ones seem to concern the audio, rather than the video. Playing around more, I found some high-definition movies that do play, so it almost certainly is an audio problem.

Just to reiterate, I'm 100% sure at least a couple of the failing videos were playing with good audio a couple weeks ago.


Updated by freemor over 2 years ago

I understood that these used to play.

My Bad. that should have read:

VLC_VERBOSE=3 vlc plays.mp4 &> plays.txt

VLC_VERBOSE=3 vlc fails.mp4 &> fails.txt

The audio errors might just be from the fact that the audio ir running ahead of the video.. Or it may actually be the issue. (thos this is usually caused by slow video)

Post those Files and I'll take a look. Hard to debug when I can't reproduce, So thanks for sticking with it.


Updated by christian over 2 years ago

Here we go.


Updated by christian over 2 years ago

Had to split up the failure into two files because of upload errors.


Updated by freemor over 2 years ago

I am seeing a lot of indications in the fails1.txt that there is a issue parsing the file.

[00007f2cecc157d0] ps demux warning: this does not look like an MPEG PS stream, continuing anyway

VLC can not properly identify it and is doing it's best to guess and failing. thus all the

garbage at input, trying to resync...

What does:

file fails.mp4 

say about the file..
what does:
ffprobe fails.mp4 

say about it..

what happens when you try to play fails.mp4 in with mpv from the cli:

mpv fails.mp4 

Please use the same file as you did for creating the fails1.txt and above


Updated by christian over 2 years ago

file "Sportsnet feed.mp4"

Sportsnet feed.mp4: MPEG transport stream data

ffprobe "Sportsnet feed.mp4"

ffprobe version n4.0.2 Copyright (c) 2007-2018 the FFmpeg developers
built with gcc 8.2.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
[mpegts @ 0x5592a82177c0] start time for stream 2 is not set in estimate_timings_from_pts
Input #0, mpegts, from 'Sportsnet feed.mp4':
Duration: 03:48:58.74, start: 86426.340000, bitrate: 5814 kb/s
Program 1
Stream #0:0[0x1e1]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
Stream #0:1[0x1e2](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 126 kb/s
Stream #0:2[0x3f3]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:3[0x4a7]: Data: timed_id3 (ID3 / 0x20334449)
Unsupported codec with id 100359 for input stream 2
Unsupported codec with id 100358 for input stream 3

mpv "Sportsnet feed.mp4" - video plays correctly with the following terminal outputs:

[ffmpeg/demuxer] mpegts: start time for stream 2 is not set in estimate_timings_from_pts
[ffmpeg/demuxer] mpegts: start time for stream 3 is not set in estimate_timings_from_pts
() Video --vid=1 (h264 1280x720 59.940fps)
) Audio --aid=1 --alang=eng (aac 2ch 48000Hz)
() Video --vid=1 (h264 1280x720 59.940fps)
) Audio --aid=1 --alang=eng (aac 2ch 48000Hz)
Subs --sid=1 (*) (eia_608)
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 1280x720 yuv420p
AV: 00:00:10 / 03:48:58 (0%) A-V: 0.000


Updated by freemor over 2 years ago

  • Subject changed from vlc will no longer play mp4 to vlc will no longer play mepgts files claiming to be mp4

OK, so we have a clue here. That file is not a properly formatted MP4.
file would have reported something like:

ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]

and ffprobe should have said:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, 

So This is really a case of VLC fails to play mpegts files..
(none of the above suggests that I'm dismissing that it used to... Just steps on narrowing the issue)
This is probably why there has been a failure to replicate the issue.. I've been playing actual MP4 files.. I'll have to dig up or make some mpegts files.

Again thanks this is moving us forward.


Updated by bill-auger over 2 years ago

christian -

have you tried using any other media player?
why are you convinced that this problem is only with VLC?

i would try totem, mplayer and others - if those do not perform any better then VLC is not the problem


Updated by freemor over 2 years ago

OK, used

ffmpeg -i <Real.mp4> -acodec copy -vcodec copy -preset slow -b:v 5000k -f mpegts Foo.mp4

To create a file similar to what you have..
And it fails to play in VLC
So we now have a reproducable problem.


Updated by freemor over 2 years ago

bill-auger wrote:

have you tried using any other media player?
why are you convinced that this problem is only with VLC?

He tried in in mpv and it played correctly.. same for me once I created the right type of file.
VLC fails
MPV plays
ffplay plays

so does seem to be a VLC issue


Updated by freemor over 2 years ago

VlC tools->codec information

Clearly shows VLC mis Identifying the aac audio stream as an mp2/3 audio stream.. Here lies the problem.


Updated by freemor over 2 years ago

I would suggest that the OP may want to correct those file to actual MP4s with:

ffmpeg -i <actually a ts>.mp4 -acodec copy -vcodec copy -preset slow -b:v 5000k -f mp4 <fixed_name>.mp4

This will go very quickly as it is only copying the streams into an MP4 container. Instead of an mpegts container.

This is a work around. Clearly there is some issue with VLC. I'll test on an Arch machine but I strongly suspect that this one might go all the way upstream.


Updated by christian over 2 years ago

Thank you freemor, I genuinely appreciate your efforts in looking into this.

Also available in: Atom PDF