Skip to content

Latest commit

 

History

History
69 lines (45 loc) · 2.5 KB

README.md

File metadata and controls

69 lines (45 loc) · 2.5 KB

DvbMonitor

Extracts teletext and other stuff from MPEG Transport Stream in real-time or from local files.

  • PacketReader.*: Reads common transport stream packets. Can be filtering by PID-value.
  • Teletext.*: A simple teletext decoder.
  • Teletext.SubtitleMonitor: Views teletext subtitles like a chat.
  • EPG.*: Decodes Event Information Table
  • TODO: View thumbnails from video.
  • TODO: Listen audio only television.
  • TODO: Decode also adaptation fields in TS-packets.

Installation and using

DvbMonitor runs on Java Runtime Environment (at least OpenJDK 11 and 17) on the Linux system. To receive television signal as Transport Stream you need the device and software for tuning.

Tuning (optional)

If you want to receive stream from aerial or cable broadcast, you need to make 'zapping'. Before it, scan channels. This example uses dvb-tools.

dvbv5-scan /usr/local/share/dvb/scan/dvb-t/fi-Eurajoki -o channels-v5.conf
dvbv5-zap -c channels-v5.conf 610000000 -P 

You need to use -P to get all PIDs of the stream. Now, the dvb stream is located in /dev/dvb/adapter0/dvr0.

Using DvbMonitor

First, compile the java-files:

javac PacketReader/Monitor.java

If you are receive stream in real-time, pipe the streamfile to program.

cat /dev/dvb/adapter0/dvr0 |java PacketReader.Monitor

On using slow hardware, the stream can overflows. Use dvbsnoop to filter PIDS and make the processing faster:

dvbsnoop -s ts -b 0x12 |java EPG.Monitor

(*PIDS defines content of packets, like video or teletext. 0x12 stands for event information table.)

To read local file:

cat ../test.ts |java PacketReader.Monitor

SubtitleMonitor

Here is an example of reading subtitles from multiple television channel and put them like a chat. It also grouping text lines to paragraphs. It use header format <Channel Name / Program Name>.

Screenshot

Read more