Opened 5 years ago

Closed 5 years ago

#2188 closed defect (invalid)

dvb_teletext not detected (ARD HD)

Reported by: martii Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mpegts dvb_teletext
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

In ffmpeg-0.8.12 ffprobe correctly recognizes teletext in transport streams:
Stream #0.2[0x13f0](deu): Subtitle: [6][0][0][0] / 0x0006

In later versions (including the current GIT) the output for the same recorded transport stream is
Stream #0:2[0x13f0](deu): Audio: mp1 ([6][0][0][0] / 0x0006), 0 channels, s16p

I can easily provide a sample on request.

% ./0.8.12/ffprobe ~/test.ts 
ffprobe version 0.8.12, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jan 25 2013 20:48:14 with llvm_gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
  configuration: --disable-doc
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  8. 0 / 53.  8. 0
  libavformat  53.  5. 0 / 53.  5. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
Input #0, mpegts, from '/home/martii/test.ts':
  Duration: 00:00:01.41, start: 50895.134844, bitrate: 5943 kb/s
  Program 28006 
    Stream #0.0[0x13ed]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 70 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0x13ee](deu): Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
  Program 10301 
    Stream #0.3[0x492]: Data: [5][0][0][0] / 0x0005
    Stream #0.4[0x87b]: Data: [11][0][0][0] / 0x000B
    Stream #0.5[0x87c]: Data: [11][0][0][0] / 0x000B
    Stream #0.0[0x13ed]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 70 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0x13ee](deu): Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
    Stream #0.6[0x13ef](mis): Audio: mp3, 0 channels
    Stream #0.2[0x13f0](deu): Subtitle: [6][0][0][0] / 0x0006
    Stream #0.7[0x13f1](deu): Subtitle: dvbsub (hearing impaired)
    Stream #0.8[0x13f2](deu): Audio: ac3, 0 channels
    Stream #0.9[0x13f4]: Data: [6][0][0][0] / 0x0006
  Program 10302 
  Program 10303 
  Program 10304 
Unsupported codec with id 94215 for input stream 2
Unsupported codec with id 0 for input stream 3
Unsupported codec with id 0 for input stream 4
Unsupported codec with id 0 for input stream 5
Unsupported codec with id 0 for input stream 9

%./git/ffprobe ~/test.ts 
ffprobe version N-49295-ge80be5a0 Copyright (c) 2007-2013 the FFmpeg developers
  built on Jan 25 2013 20:50:17 with llvm-gcc 4.2.1 (LLVM build 2335.15.00)
  configuration: --disable-doc
  libavutil      52. 16.100 / 52. 16.100
  libavcodec     54. 91.100 / 54. 91.100
  libavformat    54. 61.104 / 54. 61.104
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 33.101 /  3. 33.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
Input #0, mpegts, from '/home/martii/test.ts':
  Duration: 00:00:01.41, start: 50895.134844, bitrate: 5943 kb/s
  Program 28006 
  Program 10301 
    Stream #0:3[0x492]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:4[0x87b]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:5[0x87c]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:0[0x13ed]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0:1[0x13ee](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
    Stream #0:6[0x13ef](mis): Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels
    Stream #0:2[0x13f0](deu): Audio: mp1 ([6][0][0][0] / 0x0006), 0 channels, s16p
    Stream #0:7[0x13f1](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
    Stream #0:8[0x13f2](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 0 channels
    Stream #0:9[0x13f4]: Unknown: none ([6][0][0][0] / 0x0006)
  Program 10302 
  Program 10303 
  Program 10304 
Unsupported codec with id 0 for input stream 3
Unsupported codec with id 0 for input stream 4
Unsupported codec with id 0 for input stream 5
Unsupported codec with id 0 for input stream 9

Attachments (2)

test.ts (1.0 MB) - added by martii 5 years ago.
transport stream sample to illustrate teletext misclassification in ffmpeg > 0.8.12
ARD-UPC.ts (2.4 MB) - added by cehoyos 5 years ago.

Change History (18)

Changed 5 years ago by martii

transport stream sample to illustrate teletext misclassification in ffmpeg > 0.8.12

comment:1 in reply to: ↑ description Changed 5 years ago by cehoyos

  • Component changed from FFprobe to avformat
  • Keywords mpegts dvb_teletext added; ffprobe teletext transport stream removed
  • Status changed from new to open

Replying to martii:

In ffmpeg-0.8.12 ffprobe correctly recognizes teletext in transport streams:
Stream #0.2[0x13f0](deu): Subtitle: [6][0][0][0] / 0x0006

No, it recognizes "Subtitle" but not "dvb_teletext" which would allow decoding with third party applications (MPlayer).

Could you provide a very significantly longer sample?
Either upload to http://www.datafilehost.com/ or read http://ffmpeg.org/bugreports.html

comment:2 Changed 5 years ago by cehoyos

  • Summary changed from ffprobe (avformat_find_stream_info) stream misclassification to dvb_teletext not detected (ARD HD)

comment:3 Changed 5 years ago by kierank

There's no PAT (and probably no PMT) present in the sample so you can't probe properly. Cut a larger sample if possible.

comment:4 Changed 5 years ago by martii

Thanks, I've uploaded a longer transport stream to

http://www.datafilehost.com/download-b1107303.html

This is at nearly 60MB, about 80 seconds, SD quality.

Delete link: http://www.datafilehost.com/delete-b1107303-10822366.html

0.8.12: Stream #0.2[0x68](deu): Subtitle: [6][0][0][0] / 0x0006
current: Stream #0:2[0x68](deu): Audio: mp1 ([6][0][0][0] / 0x0006), 0 channels, s16p

Thanks!

comment:5 Changed 5 years ago by cehoyos

I would like to suggest that you post a download link without a delete link;-)

comment:6 Changed 5 years ago by martii

The delete link was on purpose. I'm pretty sure I would have lost that link, and there shouldn't be any need to keep that file longer in place than necessary. In case it was deleted by some kid just for fun before you were able to retrieve it, here's the same file again:

http://www.datafilehost.com/download-e84e93eb.html

Thank you!

comment:7 Changed 5 years ago by martii

Is anyone caring about this issue, or is it in some "ignore, won't fix" state?

comment:8 Changed 5 years ago by cehoyos

Can you explain how you recorded the sample?

The reason I ask is that I can record ARD here with mplayer dvb://ARD -dumpstream and the teletext stream is correctly detected by ffmpeg -i stream.dump (will upload as ARD-UPC.ts), so I wonder if you are simply recording the stream without the teletext data (or, as Kieran already assumed, more likely the PMT).

(I originally did not react anymore because you completely changed the stream that you uploaded which made the ticket somehow invalid imo, but please don't mind that.)

Changed 5 years ago by cehoyos

comment:9 Changed 5 years ago by martii

Thanks a lot for the feedback. The recordings were made using Neutrino running on a satellite receiver. The actual Neutrino version is from https://gitorious.org/~martii/neutrino-mp/martiis-neutrino-mp (which is "my" GIT, and in the process of checking what could go wrong on my side I indeed found a couple of recently introduced bugs, but these are unrelated to the issue I'm seeing with ffmpeg).

I've verified that the code records both PAT and PMT, and I've even done a quick analysis with dvbsnoop that confirms that PAT and PMT packets are being written to file. Recording is done directly from the demux device, so the stream should be pretty much indentical to what's sent via satellite.

VLC easily recognizes (and plays) all the streams correctly, including the Teletext one.

comment:10 Changed 5 years ago by cehoyos

Can you test mplayer -dumpstream on your setup?

comment:11 Changed 5 years ago by martii

Not trivially ... I assume you want me to access /dev/dvb/adapter0/demux0 or /dev/dvb/adapter0/dvr0 directly? Alas, the receiver is a sh4 architecture, and I don't have a mplayer binary for that. I guess I could try to cross-compile one, but that might take some time, and I don't believe that the output streams would differ from what I'm seeing now when recording or streaming to the network (both functions are just read-write loops).

I'll try to get mplayer up and running on that box.

comment:12 Changed 5 years ago by cehoyos

It unfortunately may take some time until I have access to my DVB-S(2) receiver to test myself.
(I assume you are recording from Astra, aren't you?)

Did you test the sample I uploaded? Do you see any obvious differences to your sample with the tools you use?

comment:13 follow-up: Changed 5 years ago by martii

Yes, this is Astra 19.2E. I've cross-compiled mplayer and can record video and audio; however, I haven't figured out how to add arbitrary PIDs yet. The channels.conf seems to be unsuitable for that.

I've had a look at your sample. It contains several tables which I'm currently ignoring (SDT, EIT, others) but I'm fairly sure that I shouldn't need those. I will give this another shot later this week; it's already late and I have to get up early in the morning.

Thanks!

comment:14 in reply to: ↑ 13 Changed 5 years ago by cehoyos

Replying to martii:

I've cross-compiled mplayer and can record video and audio; however, I haven't figured out how to add arbitrary PIDs yet. The channels.conf seems to be unsuitable for that.

See the line I use for an example:
ARD:314000000:INVERSION_AUTO:6900000:FEC_AUTO:QAM_256:2000+2001+2101+2071:2041+2011+2012:2001
Iirc, 2000 is the pmt, 2001 video, 2101 contains teletext and 2071 the dvb subtitles, remaining ones are audio.

comment:15 Changed 5 years ago by martii

This is pretty embarrassing. Sorry for wasting your time. Please mark this ticket as "invalid" or whatever seems appropriate.

Upon closer inspection the Neutrino code writes custom-build PAT and PMT packets at the beginning of a recorded file. These initial, hand-crafted packets (which should purportedly make the recorded stream playable under Enigma2) might speed up probing, but apparently don't come with subtitle or teletext pids. The streams work fine with ffmpeg if these fake PAT/PMT packets aren't added.

Thanks a lot for your help!

comment:16 Changed 5 years ago by cehoyos

  • Resolution set to invalid
  • Status changed from open to closed

Thank you for the clarification!

Note: See TracTickets for help on using tickets.