Televisió digital / Digital Television

Index

General

MPEG

TV Interactiva / Interactive TV

Metadades / Metadata

HDTV

3D TV

4K

Subtítols / Subtitles

Accés condicional / Conditional access

Programari / Software

  • DIY Broadcast: How to build your own TV channel with open-source
  • Playout / Reception

    emission reception
    JustDVB-It /
    OpenCaster
    linuxtv others others Avalpa / Cineca
    dvb-apps
    (linuxtv)
    libdvb
    (metzlerbros)
    dvbtools
    (linuxstb)
    A/V


    mpeg2dec / libmpeg2
    Jet / JTV (Avalpa)
    IDTVOS (Inteco)



    MHP app
    (player)


    OpenTDT yambo
    OpenMHP
    rb-browser
    mhp4free (dist)



    DVB-H ESG




    libesg

    DVB_H IP encap AMUSE: FATCAPS (sf)



    dvbnet

    MPE JustDvb-It (Cineca DVB)




    DSM-CC dsmcc-mhp-tools
    redbutton (compilation)
    MHP VDR plugin




    DVB-PSI (EPG...)

    EIT/EPG

    libucsi

    MPEG-PSI
    libdvbpsi (VideoLan)



    TS ASI






    TS MUX tscbrmuxer mplex13818
    tstool

    ts2ps
    replex

    RF
    soft modulator

    tzap
    dvbtune
    IP
    tsudpsend
    tstcpsend



    tstcpreceive
    tsudpreceive



    • OpenCaster (wp)
      • Manual
      • Related components:
        • Avalpa Broadcast Web EPG
      • Instal·lació / Installation
        • baixada / download
          • mkdir ~/src; cd ~/src
          • wget http://ftp.de.debian.org/debian/pool/main/o/opencaster/opencaster_3.2.2+dfsg.orig.tar.gz
          • tar xvzf opencaster_3.2.2+dfsg.orig.tar.gz
          • wget http://www.avalpa.com/assets/freesoft/opencaster/OpenCaster-tutorials.3.2.2.tgz
          • tar xvzf OpenCaster-tutorials.3.2.2.tgz
        • dependències / dependencies
          • Mageia
            • urpmi lib64python-devel
          • Ubuntu
            • sudo apt-get install libpython-dev yasm zlib1g-dev
        • OpenCaster
          • cd ~/src/opencaster-3.2.2
          • patches
            • sed -i 's#net/if_tun.h#linux/if_tun.h#g' tools/mpe2sec/mpe.c
            • sed -i 's.#INSTHOME ?= /usr.INSTHOME = /.g' libs/dvbobjects/Makefile
          • make
          • su; make install
        • patched x264 with PES raw output
          • dependències / dependencies
          • cd ~/src
          • git clone git://git.videolan.org/x264.git
          • cd x264/output
          • mv raw.c raw.original.c
          • cp ~/src/OpenCaster-tutorials.3.2.2/extra/x264/output/raw.c .
          • cd ..
          • ./configure
          • make
          • su (Ubuntu: sudo -i)
          • make install
          • mv x264 x264_pes
        • tsrfsend (simple application for sending using hardware devices, e.g. RF modulator)
          • compilation
            • tar xvf tsrfsend-v1.0
            • cd tsrfsend/
            • make
            • su
            • make install
          • usage
            • tsrfsend ...
        • ebu / hbbtv-dvbstream
      • Modulador / Modulator
        • HiDes UT-100C transmitter
      • Tutorial
        • release-3.2/tutorials/
          • start-here
          • first-file-mux
          • psi-generation
          • ...
      • Utilització / Usage









        to file
        transmition
        reception


        source
        coding
        ES
        to generate sec / pes
        generated sec / pes
        to generate ts
        generated TS
        to mux
        muxed TS file
        loop / mux
        tdt
        pcr stamp
        double output
        transmit
        ts{rf,asi,udp}send
        receive
        demux













        insert real time/date






        analysis
        OpenCaster


        esvideompeg2info
        esaudioinfo

        pesinfo

        tspcrmeasure muxed_....ts 4000000




        dvbsnoop



        dvbsnoop -s sec
        dvbsnoop -s pes

        dvbsnoop -tsraw -s ts -tssubdecode -if muxed_....ts -N 2 0




        ffmpeg


        ffprobe -show_frames

        ffprobe -show_frames
        ffprobe -show_streams

        ffprobe -show_streams

        ffprobe -show_format





        A/V mpeg2 video video.yuv ffmpeg video.m2v esvideompeg2pes video.pes pesvideo2ts video.ts 2496916 bps:
        • tscbrmuxer c:2300000 video.ts b:188000 audio.ts b:3008 pat.ts b:3008 pmt.ts b:1500 sdt.ts b:1400 nit.ts > muxed_2496916.ts
        13271000 bps (DVB-compliant bit-rate):
        • tscbrmuxer c:2300000 video.ts b:188000 audio.ts b:3008 pat.ts b:3008 pmt.ts
          b:1500 sdt.ts b:1400 nit.ts b:2000 eit.ts b:2000 tdt.ts b:10770084 null.ts > muxed_13271000.ts
        • tscbrmuxer c:2300000 video.ts b:188000 audio.ts b:3008 pat.ts b:3008 pmt.ts
          b:1500 sdt.ts b:1400 nit.ts b:2000 eit.ts b:2000 tdt.ts o:13271000 null.ts > muxed_13271000.ts

        muxed_....ts
        2496916 bps:
        • tsloop sample.ts > fifomuxed.ts &
        13271000 bps (DVB-compliant bit-rate):
        • tsloop sample.ts > fifomuxed.ts &
        • tscbrmuxer b:2300000 video.ts b:188000 audio.ts b:3008 pat.ts b:3008 pmt.ts
          b:1500 sdt.ts b:1400 nit.ts o:13271000 null.ts > fifomuxed.ts &
        • mkfifo fifotdt.ts
        • tstdt fifomuxed.ts > fifotdt.ts &
        2496916 bps:
        • tsstamp fifotdt.ts  2496916 > fifotsstamp.ts &
        13271000 bps :
        • tsstamp fifotdt.ts 13271000 > fifotsstamp.ts &
        tsdoubleoutput
        2496916 bps:
        • tsudpsend fifotsstamp.ts 224.0.1.2 1234 2496916
        13271000 bps:
        • tsrfsend fifotsstamp.ts -mt OFDM -mC QAM16 -mG 1/4 -mc 2/3 -mf 578
        • tsrfsend fifotsstamp.ts 1 810000 8000 16 2/3 1/4 8 0 0
        • tsasisend fifotsstamp.ts -r 13271000
        • tstcpsend OC3.demo.ts 192.168.0.45 1234 13271000
        • tsudpsend OC3.demo.ts 224.0.1.2 1234 13271000
        • mplayer -nocache -noidx udp://224.0.1.2:1234
        • vlc ...
        • tstcpreceive 1234 > received.ts
        ts2pes
        pes2es
        H.264 video
        x264 video.h264 ?
        x264_pes
        mpeg2audio audio.wav
        ffmpeg audio.mp2 esaudio2pes audio.pes pesaudio2ts audio.ts
        AC3 audio
        audio.ac3
        AAC audio
        audio.aac
        PSI / SI
        pat.py
        python











        pat.sec
        sec2ts 0 < pat.sec > pat.ts
        pat.ts

        nit.py nit.sec
        sec2ts 16 < nit.sec > nit.ts nit.ts

        sdt.py sdt.sec sec2ts 17 < sdt.sec > sdt.ts sdt.ts

        eit.py eit.sec
        sec2ts 18 < eit.sec > eit.ts eit.ts

        eit_follow.py eit_follow.sec
        sec2ts 18 < eit_follow.sec >> eit.ts

        tdt.py tdt.sec
        sec2ts 20 < tdt.sec > tdt.ts tdt.ts

        pmt.py pmt.sec sec2ts ... < pmt.sec > pmt.ts pmt.ts

        ait.py ait.sec
        sec2ts ... < ait.sec > ait.ts ait.ts

        config.py
        python
        pat.ts nit.ts
        sdt.ts pmt.ts eit.ts tdt.ts
      • General script
      • Re-multiplexing
        • Re-multiplexing input transport streams
        • Tools
          • tsorts
          • tsmodder
      • Audio / Video
        • extraction and analysis (of existing TS):
          • video
            • ts2pes firstvideo.ts 2064 > videooutput.pes
            • pesinfo videooutput.pes
            • pes2es videooutput.pes 224 > video.es
            • esvideompeg2info video.es
              • vbv buffer size: 112
            • Bit-rate control
              • vbv video.es; gnuplot ~/src/OpenCaster/release-3.2/tools/mpeg2videovbv/plot.p
                • will generate: vbvData.dat
          • audio
            • ts2pes firstaudio.ts 2068 > audiooutput.pes
            • pes2es audiooutput.pes 192 > audio.es
            • esaudioinfo audio.es
        • coding:
          • SD
            • mpeg-2 video:
              • with bufsize = vbv_buffer_size (=112 16kbit-units) * 1024 * 16= 1835008 bits
                • ffmpeg -i input.ext -an -vcodec mpeg2video -f mpeg2video -b 5000k -maxrate 5000k -minrate 5000k -bf 2 -bufsize 1835008 video.m2v
              • esvideompeg2info video.m2v
              • esvideompeg2pes video.m2v 1> video.pes 2> video.pes.length
              • pesinfo video.pes
              • video ts bit-rate calculation:
                • 15% more than the ES video bit-rate:
                  • 5000000 * 1.15 = 5270000 bits/s
              • with pid=2064, es_framerate=25, es_video_vbv=112 (in 1024*16=16kbits units), ts_video_bitrate=5270000 (15% more than the video bit-rate), loop_on=0
                • pesvideo2ts 2064 25 112 5270000 0 video.pes > video.ts
            • mpeg-2 audio:
              • ffmpeg -i input.mpg -ac 2 -vn -acodec mp2 -f mp2 -ab 128000 -ar 48000 audio.mp2
              • esaudioinfo audio.mp2
              • with samples_per_frame=1152 (fixed for MPEG-2 layer 2), sample_rate=48000, frame_size_without_padding=384 (from esaudioinfo, or calculated -> see below), AD_fade_value=-1, pts_offset=3600:
                • esaudio2pes audio.mp2 1152 48000 384 -1 3600 > audio.pes
              • pesinfo audio.pes
              • audio ts bit-rate calculation:
                • audio @ CBR 128000 bits/s / 8 bits/byte / 48000 samples/s * 1152 samples/frame = 384 bytes/frame
                • (384 bytes/frame / 184 payload_bytes/ts_packet = 2,08 ts_packets/frame -> 3 ts_packets/frame * 188 total_bytes/ts_packet *  8 bits/byte = 4152) bits/frame * 48000 samples/s / 1152 samples/frame = 188000 bits/s
                • suggestions for MPEG-1,2 audio (48000 samples/s) (opencaster-3.2.2/README):
                  audio ES kbps
                  bytes/frame
                  pes packet
                  ts packet
                  audio ts bits/s
                  (to be specified in tscbrmuxer)
                  56
                  168
                  1
                  1
                  62667
                  112
                  336
                  1
                  2
                  125333
                  160
                  480
                  1
                  3
                  188000
                  224
                  672
                  1
                  4
                  250667
              • with pid=2068, samples_per_frame=1152, sample_rate=48000, es_frame_size[:video_pts_step]=384, (?)audio_description_header=-1, loop_on=0:
                • pesaudio2ts 2068 1152 48000 384 -1 0 audio.pes > audio.ts
            • mux
          • HD
            • H.264 video:
              • ffmpeg -i big_buck_bunny_1080p_h264.mov 'movie=OpenCaster/tutorials/encodingHD/logo_tv.png [wm];[in] [wm] overlay=0:0:0:0 [out]' -f yuv4mpegpipe - | ./x264 --level 4.0 --nal-hrd cbr --vbv-bufsize 2000 --bitrate 7200 --keyint 12 --vbv-init 0 -o bb.x264.hd.video.pes
              • if you need ffmpeg (e.g. to apply a filter [pad to create a letterbox, overlay to add a logo, ...] not present in x264):
                • ffmpeg -i big_buck_bunny_1080p_h264.mov -vf 'movie=OpenCaster-tutorials.3.2.2/tutorials/encodingHD/logo_tv.png [wm];[in] [wm] overlay=0:0:0:0 [out]' -f yuv4mpegpipe - | x264_pes --demuxer y4m --level 4.0 --nal-hrd cbr --vbv-bufsize 2000 --bitrate 7200 --keyint 12 --vbv-init 0 -o bb.x264.hd.video.pes -
                • ffmpeg -i sintel-1280-surround.mp4 -vf 'pad=width=iw:height=720:y=(oh-ih)/2' -f yuv4mpegpipe - | x264_pes --demuxer y4m --level 4.0 --nal-hrd cbr --vbv-bufsize 2000 --bitrate 7200 --keyint 12 --vbv-init 0 -o sintel_hd_letterbox.pes -
              • if you do not need ffmpeg, you can directly use patched x264:
                • x264_pes --level 4.0 --nal-hrd cbr --vbv-bufsize 2000 --bitrate 7200 --keyint 12 --vbv-init 0 -o bb.x264.hd.video.pes big_buck_bunny_1080p_h264.mov
              • with pid=2066, es_framerate=24, es_video_vbv=7200000 (in bits), pcr_rate=38ms, ts_video_bitrate=7600000, loop_on=0
                • pesvideo2ts 2066 24:38 b7200000 7600000 0 bb.x264.hd.video.pes > video.ts
            • AC3 audio:
              • ffmpeg -i big_buck_bunny_1080p_h264.mov -vn -acodec ac3 -ar 48000 -ab 448k audio24p.ac3
              • esaudioinfo audio24p.ac3
              • with samples_per_frame=1536 (AC-3 standard), sample_rate=48000, frame_size_without_padding=1792 (from esaudioinfo, or calculated -> see below), AD_fade_value=-1, pts_offset=3750
                • esaudio2pes audio24p.ac3 1536 48000 1792 -1 3750 > audio.pes
              • with pid=2069, samples_per_frame=1536 (AC-3 standard), sample_rate=48000, es_frame_size[:video_pts_step]=1792, loop_on=0:
                • pesaudio2ts 2069 1536 48000 1792 0 audio.pes > audio.ts
              • ts bit-rate calculation:
                • audio @ CBR 448000 bits/s / 8 bits/byte / 48000 samples/s * 1536 samples/frame = 1792 bytes/frame
                • (1792 bytes/frame / 184 payload_bytes/ts_packet = 9,74 ts_packets/frame -> 10 ts_packets/frame * 188 total_bytes/ts_packet *  8 bits/byte = 15040) bits/frame * 48000 samples/s / 1536 samples/frame = 470000 bits/s
            • SI/PSI
            • mux
              • tscbrmuxer b:7600000 video.ts b:470000 audio.ts
          • Sintel in SD and HD, HbbTV
            • MPEG-2 audio
              • ffmpeg -i sintel-1280-surround.mp4 -vn -ac 2 -codec:a mp2 -b:a 128000 -ar 48000 -f mp2 sintel.mp2
              • esaudio2pes sintel.mp2 1152 48000 384 -1 3600 > sintel.mp2.pes
              • pesaudio2ts 2068 1152 48000 384 0 sintel.mp2.pes > sintel.mp2.ts
            • SD video
              • ffmpeg -i sintel-1280-surround.mp4 -vf 'pad=width=iw:height=720:y=(oh-ih)/2, scale=w=720:h=576' -c:v mpeg2video -b:v 5M -minrate 5M -bufsize 1835008 -maxrate 5M -an -aspect 16:9 sintel_sd_16:9.m2v
              • esvideompeg2pes sintel_sd_16:9.m2v 1> sintel.m2v.pes 2> sintel.m2v.pes.length
              • pesvideo2ts 2064 25 112 5270000 0 sintel.m2v.pes > sintel.m2v.ts
            • HD video
              • ffmpeg -i sintel-1280-surround.mp4 -vf 'pad=width=iw:height=720:y=(oh-ih)/2' -c:v libx264 -x264opts 'nal-hrd=cbr:vbv-bufsize=2000:vbv-maxrate=7200' -b:v 7.2M -minrate 7.2M  -an sintel_hd.h264
            • AAC audio
              • ffmpeg -i sintel-1280-surround.mp4 -vn -ac 2 -codec:a aac -strict -2 -b:a 128000 -ar 48000 sintel.aac
            • SI/PSI
              • config.py
        • logo insertion
          • ffmpeg -i /mnt/VIDEO_TS/VTS_01_1.VOB -an -vf 'movie=OpenCaster/tutorials/encoding/logo_tv.png [wm];[in][wm] overlay=0:0:0:0 [out]' -f mpeg2video -vcodec mpeg2video -b 2600k -maxrate 2600k -minrate
            2600k -bf 2 -bufsize 1835008 -aspect 4:3 ed.m2v

    • DIY broadcast: how to build your own TV channel with open-source and other goodies
    • gbDVB: DVB-T Simulator & other tools
  • linuxtv.org
  • linuxdvb.tv
  • linuxstb.org (dvbtools sourceforge)
  • VideoLAN
  • dvbloopback (based on Video4Linux loopback)
  • Cineca DVB software
    • CreaTV (LiveCD)
    • JustDVB-IT (IP encapsulation)
    • yambo: an MHP XML browser
  • Redbutton (DSMCC decoder)
  • DVB Linux Links
  • dvbSAM (Decontis)
  • MPEG TS/DVB Muxer (ffmpeg Google summer code)
  • LabMU (Xpertia)


SCM image rpm
git
hg cvs cvs snapshot tar mdv
dvb-kernel
v4l-dvb
  • v4l-utils (urpmi v4l-utils)
    • dvb-fe-tool
    • dvb-format-convert
    • dvbv5-scan
    • dvbv5-zap
  • qv4l2 (urpmi v4l-utils-qt4)
    • qv4l2

linuxtv linuxtv (1) linuxtv

(kernel)
dvb-apps (linuxtv.org) (config)
(API)
  • README
  • util
    • main user applications
    • general utilities
      • dvbdate (Set your clock from digital TV)
      • dvbnet (Control digital data network interfaces)
      • dvbtraffic (Monitor traffic on a digital device)
      • femon (Monitor the tuning on a digital TV device)
      • zap (*Just* tunes a digital device)
      • szap
      • tzap
      • gotox (Simple Rotor control utility)
      • alevt (Teletext capture and display utility)
      • lsdvb (list DVB devices)
    • hardware specific utilities
      • av7110_loadkeys (Load remote keys into an av7110 based card)
      • util/dib3000-watch (Monitor DIB3000 demodulators)
      • util/dst-utils (Utilities for DST based cards)
      • util/ttusb_dec_reset (Reset a TechnoTrends TTUSB DEC device)
  • lib
    • libdvbapi
    • libdvbcfg
    • libdvben50221
    • libdvbmisc
    • libdvbsec
    • libesg
  • test

linuxtv (2) linuxtv linuxdvb
DVB


linuxtv (3)
1.1.7 (metzlerbros) (kernel)
libdvb (dvb-mpegtools)
  • dvb-mpegtools_main
  • dvb_analyze
  • dvb_ts2es
  • dvb_ts2ps
  • dvb_ts_demux
  • dvb_insert_pat_pmt
  • dvb_streamtype
  • dvb_change_aspect_16_9
  • ...





0.5.3 (metzlerbros)
  • libdvb: 2007
  • libdvb-devel
tuxzap





0.5.3 (metzlerbros)
dvbtools (linuxstb.org)
sourceforge (4)


GNU Tuxbox (Apps)





Video LAN





  • libdvbpsi
  • libdvbpsi-devel
  1. cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv login;
    cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co dvb-kernel
  2. cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv login;
    cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co dvb-apps
  3. cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv login;
    cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co DVB
  4. cvs -d:pserver:anonymous@dvbtools.cvs.sourceforge.net:/cvsroot/dvbtools login;
    cvs -z3 -d:pserver:anonymous@dvbtools.cvs.sourceforge.net:/cvsroot/dvbtools co -P dvbtune
    cvs -z3 -d:pserver:anonymous@dvbtools.cvs.sourceforge.net:/cvsroot/dvbtools co -P dvbstream

  • Sintonització DVB Tuner 

    • info PID info gathered SI tune view record stream network interface
      frontend all single XML vdr zap
      application dvb-apps (source)
      (config)
      (usage)
      femon scandvb -o pids [-c (needs tzap or dvbtune -m running)]

      • scandvb -o vdr [-c | initial_file]
      • scandvb -o zap [-c | initial_file]
      • tzap TV3 (needs zap file from scandvb)
      • szap
      • scandvb initial_file
      tzap -r "TV3" && mplayer -cache 1024 - < /dev/dvb/adapter0/dvr0 tzap -r "TV3" && cat /dev/dvb/adapter0/dvr0 > tv3.ts
      • gnutv -channels ~/.tzap/channels.conf -out udp ...
      • gnutv -channels ~/.tzap/channels.conf -out rtp ...
      dvbnet -p pid
      dvbd







      (several services from one TS)

      dvbtools
      (usage)




      dvbtune -i

      • dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8
      • dvbtune -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8
      • dvbstream -f 650000

      dvbtune -n dpid
      MuMuDVB









      dvbsnoop dvbsnoop -s feinfo (set freq using dvbtune) dvbsnoop -s pidscan (on TS from feinfo) dvbsnoop [-spiderpid] pid







      qdvbzap





      x


      Kaffeine





      x


      KaxTV





      x


      Klear 





      x


      mplayer





      mplayer dvb://TV3


      ProgDVB










      vlc





      vlc dvb:// --dvb-frequency=650000000


      xine





      x


      media centre Freevo





      x

      GeexBox





      x ?

      MythTV





      x

      VDR





      x (plugin)
    • ...

    • tune streaming view record
      single service dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8 -m


      tzap -r "TV3"
      (-r to set /dev/dvb/adapterX/dvr0 for TS recording)

      mplayer -cache 1024 - < /dev/dvb/adapter0/dvr0 cat /dev/dvb/adapter0/dvr0 > tv3.ts
      ffmpeg -f mpegts -i /dev/dvb/adapter0/dvr0 -f mpegts udp://224.0.0.1:5004 mplayer -cache 1024 udp://224.0.0.1:5004

      gst-launch-0.10 filesrc location=/dev/dvb/adapter0/dvr0  ! video/mpegts ! ffdemux_mpegts name=d  d.video_00 ! video/mpeg ! ffdec_mpeg2video ! xvimagesink
      gst-launch dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=514000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 pids=256:257 ! flutsdemux crc-check=false name=demux es-pids=256:257 ! queue max-size-buffers=0 max-size-time=0 ! flumpeg2vdec ! xvimagesink sync=false demux. ! queue max-size-buffers=0 max-size-time=0 ! flump3dec ! alsasink sync=false
      mplayer dvb://TV3
      vlc dvb:// --dvb-frequency=658000000 --dvb-adapter=0 --dvb-bandwidth=8 --program=261 (*)
      dvbstream -f 658000 ... [-net ip_add:port]
      mplayer rtp://...
      dvbstream -f 658000 ... pid_v pid_a -o
      • | mplayer -
      • | vlc -
      > tv3.ts
      whole TS dvbstream -f 658000 ... 8192 -o
      • | mplayer -vid pid_v -aid pid_a  -
      • | vlc -
      > tvc.ts
      gst-launch dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8MHz freq=514000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 ! flutsdemux crc-check=false name=demux ! queue max-size-buffers=0 max-size-time=0 ! flumpeg2vdec ! xvimagesink sync=false demux. ! queue max-size-buffers=0 max-size-time=0 ! flump3dec ! alsasink sync=false


    • GUI
      • Kaffeine
        • check that dvb device is working
        • Televisió
          • Configura la televisió
            • (pestanya) Dispositiu 1
              • Font: Escaneja automàticament
                • Nom: Terrestre_escaneja
          • Canals
            • Font: Terrestre_escaneja
            • Inicia l'exploració
            • Resultat de l'exploració: seleccioneu-los tots
            • Afegeix els seleccionats
        • fitxers / files
          • ~/.local/share/kaffeine/
        • ...
    • command line (see also Utilitats/Utilities):
      • Testing your DVB device (dvb-apps, dvbtraffic, dvbsnoop, dvbstream) (DVB wiki)
      • dvb-apps
        • scan
          • w_scan (wirbel) (all VHF, UHF band):
            • install
              • Mageia
                • sudo urpmi w_scan2
            • download and compile
              • Dependencies:
                • Mageia
                  • urpmi kernel-desktop-devel-latest
              • wget http://wirbel.htpc-forum.de/w_scan/w_scan-20140118.tar.bz2
              • tar xvjf w_scan-20140118.tar.bz2
              • cd w_scan-20140118
              • ./configure; make
              • make install
            • usage
              • w_scan -c ES
              • w_scan -c ES -x > initial-tuning-data.txt (to generate the file initial-tuning-data.txt, e.g. /usr/share/dvb/dvb-t/es-Collserola, to be used by scandvb)
              • w_scan -c ES -X > channels.conf (to be used by tzap)
          • only selected channels:
            • scandvb /usr/share/dvb/dvb-t/es-Collserola > ~/.tzap/channels.conf (only selected channels specified in initial-tuning-data.txt or es-Collserola)
          • format of channels.conf:
        • gnutv (dvb-apps)
          • gnutv -channels ~/.tzap/channels.conf TV3
        • mplayer
          • scandvb /usr/share/dvb/dvb-t/es-Collserola > ~/.mplayer/channels.conf
          • mplayer "dvb://TV3(TVC)"
        • tzap
          • generate channels.conf
          • tune & view or record
            • tzap -r "TV3(TVC)" (-r to set /dev/dvb/adapter0/dvr0)
              • view
                • mplayer -cache 1024 - < /dev/dvb/adapter0/dvr0
              • record
                • cat /dev/dvb/adapter0/dvr0 > tv3.ts
          • ...
        • ...
      • ffmpeg transcoding to H.264 and streaming:
        • tzap -r "TV3" (-r to set /dev/dvb/adapter0/dvr0)
        • ffmpeg -f mpegts -vsync 1 -map 0.0:0.1 -map 0.1 -i /dev/dvb/adapter0/dvr0 -vcodec libx264 -vpre normal -vb 428288 -g 16 -s 320x240 -acodec aac -ab 96000 -ac 1 -deinterlace -f mpegts udp://224.0.0.1:5004
        • mplayer -cache 1024 udp://224.0.0.1:5004
      • gstreamer
        • GStreamer dvbsrc pipeline example.
        • GStreamer Transcoding and Scaling
        • Stream all mux:
          • gst-launch-1.0 dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=658000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 ! queue2 ! udpsink host=192.168.0.8 port=5004 sync=false
        • Stream selected PIDs:
          • gst-launch-1.0 dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=658000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 pids=111:112 ! queue2 ! udpsink host=192.168.0.8 port=5004 sync=false
        • Transcode and stream:
          • gst...
        • gst-launch dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=514000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 pids=256:257 ! flutsdemux crc-check=false name=demux es-pids=256:257 ! queue max-size-buffers=0 max-size-time=0 ! flumpeg2vdec ! xvimagesink sync=false demux. ! queue max-size-buffers=0 max-size-time=0 ! flump3dec ! alsasink sync=false
        • gst-launch-1.0 dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=658000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4 hierarchy=0 pids=111:112 ! flutsdemux crc-check=false name=demux es-pids=111:112 ! queue max-size-buffers=0 max-size-time=0 ! flumpeg2vdec ! xvimagesink sync=false demux. ! queue max-size-buffers=0 max-size-time=0 ! flump3dec ! alsasink sync=false
      • perl Linux-DVB (interface to (some parts of) the Linux DVB API)
      • dvbtools
        • dvbtune (wiki)
          • dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8
          • tune satellite receiver to 11568MHz (11,568GHz):
            • dvbtune -f 11568 -p v -s 22000
          • xml output (-i)
            • dvbtune -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -i
        • dvbstream (wiki) (dvbstream.c) (vegeu el substitut / see replacement: MuMuDVB)
          • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 pmt_pid video_pid audio1_pid audio2_pid ...
          • TS over RTP (default: -rtp -net 224.0.1.2:5004)
            • view (multicast streaming to default 224.0.1.2:5004)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 110 111 112 113
              • mplayer rtp://224.0.1.2:5004
          • TS over UDP:
            • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -udp 110 111 112 113
          • output to file (-o):
            • view (standard output: -o)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 110 111 112 113 -o | mplayer -
            • record (2 services -> 1 file) (cvs version needed) (includes PAT and PMT)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -prog -o:tvc.ts 801 802
            • record (2 services -> 2 files) (cvs version needed) (includes PAT and PMT)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -prog -o:tv3.ts 801 -o:c33.ts 802
            • record (selected PIDs)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 110 111 112 113 -o > tv3.ts
            • record (whole TS: 8192)
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 8192 -o > tvc.ts
              • dvbstream -f 658000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 8192 -o > tvc_hd.ts
              • dvbstream -f 11568 -p v -s 22000 8192 -o:/tmp/astra_11568v.ts
              • dvbstream -f 11568 -p v -s 22000 8192 -o > /tmp/astra_11568v.ts
            • record only (approx.) 10 seconds (requires latest version from cvs):
              • dvbstream ... -n 10 ...
            • record 60 seconds of the whole TS at every specified frequency:
              • #!/bin/bash
                for freq in 490 514 522 538 554 570 578 618 634 650 658 666 682
                do
                    #/usr/bin/dvbstream -f ${freq}000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -n 60 8192 -o > /tmp/${freq}_`date +"%Y%m%d-%H%M"`.ts
                    timeout 60
                dvbstream -f ${freq}000 -qam 64 -gi 4 -cr 2_3 -bw 8 -tm 8 -n 60 8192 -o > /tmp/${freq}_`date +"%Y%m%d-%H%M"`.ts
                done
      • MuMuDVB
        • Documentació / Documentation
        • OpenWRT compilation
        • descàrrega / download
          • git clone git://github.com/braice/MuMuDVB.git
        • dependències / dependencies
          • Mageia
            • urpmi autoconf automake gettext-devel
        • compilació / compilation
          • cd MuMuDVB
          • autoreconf -i -f
          • ./configure
          • make
          • su; make install
        • scripts
          • Debian
            • cp scripts/debian/etc/default/mumudvb /etc/default/mumudvb
              cp scripts/debian/etc/init.d/mumudvb /etc/init.d/mumudvb
          • Mageia
            • cp ...
        • usuari / user
          • ...
        • utilització / usage
          • mumudvb.conf (doc/configuration_examples/autoconf_full.conf)
            • freq=658
              autoconfiguration=full

          • mumudvb -d -c mumudvb.conf
        • visualització / view
          • SAP
            • vlc
              • Visualitza -> Llista de reproducció -> Xarxa local -> Fluxos de xarxa (SAP)
          • direct (@: multicast)
            • vlc udp://@239.100.0.0:1234
        • monitoratge / monitoring
        • transcodificació / transcoding
          • ffserver
            • MuMuDVB/doc/html/TRANSCODE_EXTERNAL.html (txt)
          • other (deprecated?)
            • MuMuDVB/doc/transcode/ (txt)
        • problemes / problems
          • configure.ac:27: warning: macro 'AM_ICONV' not found in library
            configure.ac:27: error: possibly undefined macro: AM_ICONV
                  If this token and others are legitimate, please use m4_pattern_allow.
                  See the Autoconf documentation.
            • Solució / Solution
              • assegureu-vos que teniu el fitxer iconv.m4 instal·lat / make sure the file iconv.m4 is installed:
                • urpmi gettext-devel
  • Edició DVB Edition 
  • Utilitats / Utilities
    • DVB development software
    • MPEG2TS analysing/splitting tool

    • creation analysis conversion MUX
      libdvb (metzlerbros)
      dvb_analyze, ts_pids... ts2ps, ts2es, [dvb_]insert_pat_pmt...
      replex (metzlerbros)(freshmeat)



      dvbsnoop
      x

      tstool
      x change/extract PID...
      tstools

      tsinfo


      VK tools (MPEG)



      dsmcc-mhp-tools



      Ethereal MPEG-2 TS Dissector
      x

      An analyzer for MPEG 2 Program Stream files (CodeProject)



      TSReader Lite (win)

      x

      MPEG-2 Transport Stream Analyzer (MP2TSA) (Manzanita Systems) (commercial)
      x

      mplex (MPEG2 mux)


      x
      MPEG-2 Transport Stream packet analyser (win)

      x


      Analyzer TS (Main Concept)

      x


      multicat (videolan)

      x

      Linux-DVB-DVBT-TS
      dvbt-ts-info

      DVB Inspector (java) (PSI, bit-rate, ...)

      x


      VCDemo (TU Delft)




      OpenCaster

      esvideompeg2info, esaudioinfo,
      pesinfo,
      tspcrmeasure
      ts2pes, pes2es,
      esvideompeg2pes,esaudio2pes,
      pesvideo2ts, pesaudio2ts
      tscbrmuxer
      ProjectX (DVB demux tool) (subtitles)



    • VCDemo (TU Delft)
    • dvbsnoop
      • Ubuntu manpage: dvbsnoop
      • install from source code
        • git clone http://git.code.sf.net/p/tuxbox-cvs/apps tuxbox-cvs-apps
        • cd tuxbox-cvs-apps/dvb/dvbsnoop
        • ./autogen.sh
        • ./configure
        • make
        • make install
      • Tracker
      • Patches
      • check with dvbsnoop -s feinfo that the device is tuned to the desired frequency and parameters (if not, use dvbtune: check that the reception is OK, and quit it)
        • dvbsnoop -frontend /dev/dvb/adapter0/frontend0 -s feinfo
        • dvbsnoop -frontend /dev/dvb/adapter0/frontend1 -s feinfo
      • DVB-SI
        • From dvb adapter:
          • PAT:
            • dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8 && dvbsnoop -N 4 -s ts -pd 4 -tssubdecode -nph 0x000 > pat_000.txt
            • tzap "TV3(TVC)" &
            • dvbsnoop -N 4 -s ts -pd 4 -tssubdecode -nph 0x000 > pat_000.txt
            • to generate a file (pm_list.txt) with pairs "service_id pid_for_pmt" (decimal and hexadecimal):
              • awk '/Program_number/{s_id=$2;getline;pmt[s_id]=$2}END{for (i in pmt){print i, pmt[i]} }' pat_000.txt | sort > pmt_list.txt
              • awk '/Program_number/{s_id=$2} /Program_map_PID/{pmt[s_id]=$2} END{for (i in pmt){print i, pmt[i]} }' pat_000.txt | sort > pmt_list.txt
              • awk '/Program_number/{s_id=$2} /Program_map_PID/{gsub(/[()]/,"",$3);pmt[s_id]=$3} END{for (i in pmt){print i, pmt[i]} }' pat_000.txt | sort > pmt_list_hex.txt
            • dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8 && dvbsnoop -N 4 -s ts -pd 4 -tssubdecode -nph 110 > pmt_110.txt
            • from pmt_list.txt, choose one PID (e.g.: "801 110")
              • dvbsnoop -N 4 -s ts -pd 4 -tssubdecode -nph 110 > pmt_110.txt
            • to find the PID of "Stream_type=5" (AIT):
              • awk '/Stream_type: 5/{print $0; getline; print $0}' pmt_110.txt
              • awk 'BEGIN{found=0} /Stream_type: 5/{found=1} found&&/Elementary_PID/{found=0;print $2}' pmt_110.txt
            • dvbtune -f 658000 -qam 64 -gi 4 -cr AUTO -bw 8 -tm 8 && dvbsnoop -N 2 -s ts -pd 4 -tssubdecode -nph 901 > ait_901.txt
            • dvbsnoop -N 2 -s ts -pd 4 -tssubdecode -nph 901 > ait_901.txt
            • to find the URL_base inside the AIT:
              • awk '/URL_base:/{print $2}' ait_901.txt
        • From file:
          • PAT:
            • dvbsnoop [-pd 9] -N 4 -ph 0 -s ts -tssubdecode -if toto.ts 0 (decode only N=4 found sections)
          • PAT:
            • dvbsnoop -N 2 -ph 0 -s ts -tssubdecode -if toto.ts 0x00
          • NIT: 
            • dvbsnoop -N 2 -ph 0 -s ts -tssubdecode -if toto.ts 0x10
          • SDT: 
            • dvbsnoop -N 2 -ph 0 -s ts -tssubdecode -if toto.ts 0x11
          • EIT:
            • dvbsnoop -N 200 -ph 0 -s ts -tssubdecode -if toto.ts 0x12
      • CVS source
    • dvbtools
      • XML output:
        • dvbtune -i
    • dvb-apps
      • test/libucsi/testucsi 0 ~/.tzap/channels.conf
      • Problems:
        • XXXX dvbdate function check failed (1131835761!=1131832161)
          • Put your computer at GMT time (London)
        • Failed to lock!
          • ..?
    • DVB Inspector
      • Dependències
        • Mageia 9
          • sudo dnf install java-17-openjdk
      • usage
        • cd DVBinspector-1.18.0
        • ./dvb.sh
        • java -jar DVBinspector-1.18.0.jar
          • Problemes / Problems
            • Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-17-openjdk-17.0.8.0.7-1.mga9.x86_64/lib/libawt_xawt.so
              • Solució / Solution
                • sudo dnf install java-17-openjdk
      • Resources
    • EIT / EPG

Publicacions / Publications

EBU - European Broadcasting Union / UER

Mòbil / Mobile


codec protocol phy bandwidth (MHz) modulation error coding time slicing where
DVB-H
IP DVB 8
  • QPSK
  • 16QAM
  • 64QAM
conv + RS-FEC + MPE-FEC real Europe
USA
Asia
DXB
DAB



Germany
T-DMB MPEG4 MPEG-TS 1.712
  • DQPSK
conv + RS-FEC micro Europe
Korea
MediaFLO

OFDM



USA
BT-Livetime
IP DAB EPM



UK
ISDB-T

single segment mode



Japan
MBMS

UMTS / IMT 2000



Europe
USA
Japan
.

first generation
second generation
convergence
DVB
DVB-H
DVB-NGH phase 1
CBS (Common Broadcast Specification):
  • DVB-NGH phase 2
  • LTE E-MBMSv2
3GPP
iMB (integrated Mobile Broadcasting) (wp)
LTE E-MBMS

ISO-OSI MBMS DVB-H eDAB DMB T-DMB


H264 / AVC (CIF)

MPEG4

IPDC services






FLUTE


RTP/SRTP ALC/LCT

UDP

IPv6
PSI/SI MPE


link
MPEG2 TS MPEG2 TS
physical UMTS DVB-T (+4k) DAB
DxB

IPTV (managed Internet)

Web and TV

HBB Hybrid Broadcast Broadband (unmanaged Internet)

Over the top (OTT) / Internet TV / TV over broadband

Segona pantalla / Second screen

Xarxa domèstica / Home Network

TV P2P

  • ...

Maquinari / Hardware

  • Linux logs
    • journalctl -f
    • ls -l /dev/dvb/
    • tree /dev/dvb/
      • /dev/dvb/
        └── adapter0
            ├── demux0
            ├── dvr0
            ├── frontend0
            └── net0
    • ...
  • Moduladors / Modulators
    • HiDes (Idealez)
      • UT-100C + OpenCaster Special Edition (USB DVB-T trasnsmitter) (OpenCaster)
        • Downloads
          • SDK_Linux.zip
        • ID 048d:9507 Integrated Technology Express, Inc. ITE it9507 full featured DVB-T transmission chip [ccHDtv]
        • Driver compilation (instructions from USB pendrive: Avalpa/OC-QSG-v1.0.pdf)
          • Dependencies
            • Mageia
              • urpmi kernel-desktop-devel-latest
          • cd SDK_Linux/it950x_linux_v13.06.27.1/it950x_driver/
          • if kernel >=3.4 :
            • sed -i 's/err(/pr_err(/g' src/it950x-core.c
          • make
          • su; make install
        • udev
          • /etc/udev/rules.d/it950x.rules
            • # original it950x vid/pid (ite 9507)
              SUBSYSTEMS=="usb", ATTRS{idVendor}=="048d", ATTRS{idProduct}=="9507",MODE:="0666"
          • connect the USB device
          • comproveu que funciona / check that it is working
            • ls -l /dev/usb-it9*
              • /dev/usb-it913x0
                /dev/usb-it950x1
        • tsrfsend (instructions from «OpenCaster 3.2 Quick Start Guide», USB pendrive: Avalpa/OC-QSG-v1.0.pdf)
          • extract from USB pendrive:
            • cd Avalpa
            • tar xvf tsrfsend-v1.0
          • compilation
            • cd tsrfsend
            • make clean
            • make
            • su; make install
          • usage (from file OC3.demo.ts [16qam, 2/3 fec, 1/4 gi], transmit on device 1 at 810MHz frequency, 8MHz bandwidth, 16qam, 2/3 fec, 1/4 gi, 8k mode, 0 cell id, 0 gain [-52..6])
        • OpenCaster 3.2 (instructions from «OpenCaster 3.2 Quick Start Guide», USB pendrive: Avalpa/OC-QSG-v1.0.pdf)
          • dependencies
            • Mageia
              • urpmi lib64python-devel
          • extract from USB pendrive:
            • cd Avalpa
            • tar xvf OpenCaster-v3.2
          • compilation
            • cd release-3.2
            • make
            • su; make install
          • utilització / usage
            • mkfifo fifo.ts
            • tsloop OC3.demo.ts > fifo.ts &
            • tsrfsend fifo.ts 1 810000 8000 16 2/3 1/4 8 0 0
  • Fabricants / Manufacturers
  • STB
  • DVB-ASI
    • Dektec
      • Drivers
        • download linux drivers
        • su; cd Dtu2xx; make; chmod +x InstallDtu2xx; ./InstallDtu2xx
      • Play TS
        • cd DtPlay; make
        • Portivity (8MHz, 8k, QPSK, GI=1/16, CR=1/2 -> 5848889bps [6048/(0.000896)/(1+1/16)*188/204*2*1/2]):
          • DtPlay toto.ts -r 5848889
  • PC cards / USB dongles
  • TV portàtil
    • Marca
      Model
      Pantalla

      Altres
      Preu
      August
      DTV705
      7"

      HDMI out
      69¤
      DTV905
      9"



      DA100C
      10"
      800x480


      Energy Sistem
      TV-2070
      7"



      TV-2090
      9"



      TV3190
      9"



      Odys
      MPTV350
      3.5"
      320x240

      59¤
      Multi TV700-Move
      7"
      800x480


      MoveOn X830002
      10.1"
      1024x600
      HDMI in
      93¤
      98¤ 98¤

TV Connectada / Connected TV



Connected TV platform
owner:
ETSI
W3C

BBC,...
Google, Sony, Logitech
LG Loewe
Panasonic Philips
Samsung Sharp Sony
Toshiba
Yahoo
platform:
HbbTV WebTV (IG)
xbmc
Boxee
YouView Google TV NetCast MediaNet
Viera Connect Net TV SmartTV AquosNet Bravia widgets (*) NetTV Connected TV
media
broadcast
formats


























transport

























broadband
formats























  • MP4: H.264, AAC
  • WMV9: VC-1, WMA

transport























  • HTTP progressive download


technologies

















type framework language development runtime

















SDK IDE browser-less / VM browser-based

















generic additional




























development:





LG Developer Lounge
Viera Connect Developer Centre Philips TV partnership Samsung D Forum
Challenge
Samsung TV Apps SDK UX Guideline
Aquos Net developer program sdk
applicast toolkit



applications broadcast
formats

MHP/GEM
Java






























transport








MPEG DSM-CC
















broadband
formats
RIA
MS Silverlight























Java
Java


  • Eclipse
  • ...
application
applet




Android SDK
Dalvik VM











Adobe Flash
ActionScript
Flex

  • Eclipse
  • Adobe Flash Builder
Adobe AIR
Flash plug-in (abandonado, abandoning)




Flash 10.1 (FAQ)
(templates)
Chrome 5.0 browser
(Optimize for TV)
x



Adobe AIR



Adobe AIR


client-based
Ajax
HTML



-
x
CE-HTML



HTML5 (templates) HTML


CE-HTML
HTML 4.01
XHTML
1.0
XML 1.0
Maple browser 5.1




CSS



-
x
CSS TV Profile (2.1)



CSS3



CSS TV Profile 1.0 CSS1
CSS2
CSS TV Profile





XMLHttpRequest



-
x
Carousel objects



x



x
x





XML


















x
widget engine
Javascript

  • jQuery
  • Closure?

-
x
OIPF vol5:  DAE
Examples (*):



x


ECMAScript 262
JavaScript 1.6



  • KONTx
    • Mediaplayer
  • Javascript TV API
transport








  • HTTP
  • HTTP / TLS

















maquinari




  • LG

  • Panasonic
  • Philips
  • Samsung
  • Sharp
  • Sony
    (old models)



tipus
empresa
plataforma
desenvolupament
Maquinari Continguts




STB
TV
BD player SoC
PC
widgets
app source
VoD
catch-up TV
ràdio
www











open
closed


open
closed
fabricants CE
LG
NetCast







LG Apps TV Seller Lounge





Panasonic
Viera Connect














Philips
Net TV









Videoland,
Video Futur,
Film2Home,
VideoLoad
TV3, A3, ...
RadioTime,
iConcerts,
Napster


Samsung
Smart TV






Samsung Appstore (supp)

Samsung Movies

based on Chrome
(no HTML5)

Sharp
AquosNet














Sony Bravia Internet Video







Qriocity



Toshiba
NetTV














plataformes
Adobe
AIR













Yahoo
Connected TV (widgets)


  • LG
  • Samsung
  • Sony
  • Toshiba
  • Vizio











Google, Intel, Sony, Logitech
GoogleTV


Sony TV
Sony BluRay Logitech Revue


Market TV




Spotlight
(Chrome browser)


Boxee














xbmc





(nettops)




tvalacarta



BBC,...
Youview














BBC

  • TAL (TV Application Layer)













Apple
AppleTV




AppleTV




x




estàndards

HbbTV















HTML5
















http://www.francescpinyol.cat/tvd.html
Primera versió: / First version: 19.V.2006
Darrera modificació: 12 de gener de 2024 / Last update: 12th January 2024


Valid HTML 4.01!

Cap a casa / Back home.