Ticket #1798 (open defect)
Real-world transport stream with incorrect PMT plays fine with WMP
| Reported by: | skrull | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | git-master | Keywords: | mpegts |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
There's no sound with this file. It comes from a dvb-s2 channel.
WMP is the only player working.
ffplay git, MPlayer 1.1, MPlayer2, VLC 2.0.3, xbmc git (07/Oct/12) does not play audio (either windows or linux)
I managed to play audio only with mplayer -novideo switch.
It seems that PMT indicates the wrong stream type.
Change History
comment:2 Changed 8 months ago by cehoyos
- Keywords mpegts added
- Component changed from undetermined to avformat
How was this sample recorded? With cat directly from the dvb device or did an application possibly alter the stream?
Which tv program is it?
comment:3 Changed 8 months ago by cehoyos
Please add complete, uncut console output of ffmpeg -i multishow-hd.ts to make this a valid ticket.
comment:4 Changed 8 months ago by skrull
It was recorded with tvheadend-git (07/Oct/2012).
ffmpeg version N-45169-g43c157f Copyright (c) 2000-2012 the FFmpeg developers
built on Oct 8 2012 10:02:26 with gcc 4.4.5 (Debian 4.4.5-8)
configuration: --prefix=/usr --enable-gpl --enable-nonfree --enable-version3 --enable-shared --enable-gray --enable-avresample --enable-x11grab --enable-vaapi --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfaac --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-openal --enable-openssl --enable-lto --disable-decoder='mpeg2_crystalhd,mpeg4_crystalhd,msmpeg4_crystalhd,vc1_crystalhd,wmv3_crystalhd,h264_crystalhd'
libavutil 51. 73.102 / 51. 73.102
libavcodec 54. 65.100 / 54. 65.100
libavformat 54. 30.100 / 54. 30.100
libavdevice 54. 3.100 / 54. 3.100
libavfilter 3. 19.102 / 3. 19.102
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 16.100 / 0. 16.100
libpostproc 52. 1.100 / 52. 1.100
[h264 @ 0x1444120] non-existing SPS 0 referenced in buffering period
[h264 @ 0x1444120] non-existing PPS referenced
[h264 @ 0x1444120] non-existing SPS 0 referenced in buffering period
[h264 @ 0x1444120] non-existing PPS 0 referenced
[h264 @ 0x1444120] decode_slice_header error
[h264 @ 0x1444120] no frame!
[mpegts @ 0x142f640] Stream #1: not enough frames to estimate rate; consider increasing probesize
[mpegts @ 0x142f640] PES packet size mismatch
Input #0, mpegts, from 'multishow-hd.ts':
Duration: 00:00:18.20, start: 16706.124278, bitrate: 9070 kb/s
Program 1
Stream #0:0[0x1043]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x1041](por): Audio: ac3 ([129][0][0][0] / 0x0081), 44100 Hz, 4.1, s16, 384 kb/s (comment)
comment:5 Changed 8 months ago by cehoyos
What is the name of the dvb program you recorded (not the software, the tv program)?
comment:7 Changed 8 months ago by cehoyos
- Status changed from new to open
- Reproduced by developer set
Work-around is to use -acodec mp2:
$ ffmpeg -acodec mp2 -i multishow-hd.ts
ffmpeg version N-45217-gb6f435f Copyright (c) 2000-2012 the FFmpeg developers
built on Oct 9 2012 21:23:23 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 51. 74.100 / 51. 74.100
libavcodec 54. 65.100 / 54. 65.100
libavformat 54. 31.100 / 54. 31.100
libavdevice 54. 3.100 / 54. 3.100
libavfilter 3. 19.102 / 3. 19.102
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 16.100 / 0. 16.100
libpostproc 52. 1.100 / 52. 1.100
[h264 @ 0x1765220] non-existing SPS 0 referenced in buffering period
[h264 @ 0x1765220] non-existing PPS referenced
[h264 @ 0x1765220] non-existing SPS 0 referenced in buffering period
[h264 @ 0x1765220] non-existing PPS 0 referenced
[h264 @ 0x1765220] decode_slice_header error
[h264 @ 0x1765220] no frame!
[mpegts @ 0x1761360] PES packet size mismatch
Input #0, mpegts, from 'multishow-hd.ts':
Duration: 00:00:18.20, start: 16706.124278, bitrate: 9070 kb/s
Program 1
Stream #0:0[0x1043]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x1041](por): Audio: mp2 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, s16, 384 kb/s
At least one output file must be specified
tvheadend has a transport stream muxer, so it is theoretically possible that the software is writing the broken stream (and not the television provider). Do you have another possibility to record a few seconds directly from dvb?
comment:8 Changed 8 months ago by skrull
Today I was doing a raw mux dump to check if it was a tvheadend bug or not, then I noticed that audio was playing. So I guess the tv provider fixed it last night.
But if you still want a raw mux dump, point me where I could upload a 200MB file.
comment:9 Changed 8 months ago by cehoyos
Do I understand correctly that you know for sure now that it was the provider's fault and that they fixed it?
There is no hard file limit for the incoming directory you used.
comment:10 Changed 8 months ago by skrull
Yes, I was living with that problem for last four months, until this week I decided to debug it. I went to #mplayerdev and asked for help, someone told me that sample was indicating wrong stream type on PMT. They also told me to submit to ffmpeg trac (and here we are).
After that, I went to #hts (tvheadend). They asked for a raw mux dump. Today when I did record it and suddenly I could hear sound. tvheadend was always the same version.
Also today, on XBMC channel sound settings (where I do select audio stream), the stream names changed to new ones. Based on this, I could spot they changed something.
I could assure I did not change anything. But it would be nice if ffmpeg could play this file even if has wrong headers, in case my content provider chooses to mess up again :)
BTW, WMP 12 plays that file fine.
comment:11 Changed 7 months ago by cehoyos
I can confirm that audio plays with WMP.
comment:12 Changed 7 months ago by cehoyos
- Summary changed from ffplay won't play audio from mpeg-ts file/stream to Real-world transport stream with incorrect PMT plays fine with WMP



Since it is a 20MB sample file I have uploaded it to ftp://upload.mplayerhq.hu/incoming/multishow-hd.ts