Opened 12 years ago
Last modified 12 years ago
#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 (12)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Component: | undetermined → avformat |
---|---|
Keywords: | mpegts added |
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 by , 12 years ago
Please add complete, uncut console output of ffmpeg -i multishow-hd.ts to make this a valid ticket.
comment:4 by , 12 years ago
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 by , 12 years ago
What is the name of the dvb program you recorded (not the software, the tv program)?
comment:7 by , 12 years ago
Reproduced by developer: | set |
---|---|
Status: | new → open |
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 by , 12 years ago
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 by , 12 years ago
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 by , 12 years ago
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:12 by , 12 years ago
Summary: | ffplay won't play audio from mpeg-ts file/stream → 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