SlideShare ist ein Scribd-Unternehmen logo
1 von 46
CRC-mmbTools
     Software Radio Workshop
      Pascal.Charest @ crc . ca
Communications Research Centre, Canada

     EBU-EUR Digital Radio Week
       Geneva, February 2011
Overview

● Introduction
● CRC-mmbTools live CD and website
● CRC FLOSS DAB tools usage
● Service encoding
● Other modulations
● Conclusion
CRC-mmbTools live CD and website

● Introduction
   ○ A word about the live CD
   ○ Ubuntu
   ○ Papers
● Workshop's frequency allotment plan
● Tools overview
● Demos
● Installation
Major Papers

● An Experimental DAB Delivery Platform For Internet
  Broadcast Services, F. Lefebvre, IBC 2002
● End-to-end Mobile Multimedia Broadcasting Software Tools,
  F. Lefebvre, P. Charest, IBC 2006
● Software Implementation of the DMB Transmission System,
  P. Charest, F.Lefebvre, WOC 2007
● Software DAB Transmitter On Live CD, P. Charest, F.
  Lefebvre, WOC 2008
● Open source handhelds: a broadcaster-led innovation for
  BTH services. F. Lefebvre, J.-M. Bouffard, P. Charest. EBU
  Technical Review - Best of 2008.
● The Openmokast Open Source Framework: Towards User
  Innovation In The Mobile Broadcasting Application Space,
  F. Lefebvre, J.-M. Bouffard, P. Charest, IBC 2009
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
   ○ Let's do it!
      ■ Band III: 10C-13F
      ■ Band L: any
● Tools overview
● Demos
● Installation
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
● Tools overview
   ○ Applications
   ○ Documentation
   ○ Demonstration scripts
● Demos
● Installation
CPU Requirements

Minimum CPU requirements? We don't know, but here's a list
of CPU that don't work:
  ● Pentium M 715 @ 1.5 GHz, PassMark 393
  ● Intel Atom 330 @1.6 GHz, PassMark 633

Benchmark score are from PassMark:
http://www.cpubenchmark.net/cpu_list.php

Please, choose a CPU more powerfull than one listed above.
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
● Tools overview
● Demos
   ○ Using the scripts
   ○ CRC mmbTools website
● Installation
http://mmbtools.crc.ca
CRC-mmbTools live CD and website

● Introduction
● Tools overview
● Workshop's frequency allotment plan
● Demos
● Installation
   ○ From the live CD
   ○ From USB
   ○ To a virtual machine
   ○ Gnuradio update (for WBX)
Gnuradio update

$ sudo apt-get remove -y gnuradio gnuradio-doc libgnuradio
libgnuradio-core libgnuradio-omnithread libgruel python-
gnuradio-core libusrp usrp-doc python-wxgtk2.6
$ sudo apt-get -y install git-core autoconf libtool python-dev
swig libfftw3-dev libcppunit-dev libusb-dev libboost1.37-dev
guile-1.8-dev sdcc-nf libsdl1.2-dev libgsl0-dev
Gnuradio update (old instructions)

### Old instructions, please use next slide instead ###

$ git clone http://gnuradio.org/git/gnuradio.git
$ cd gnuradio
$ git checkout v3.3.0
$ ./bootstrap
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make -j2
$ sudo make install
$ sudo ldconfig
$ sudo ln -s gnuradio-companion /usr/bin/grc
$ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
Gnuradio update (new instructions)

$ wget http://ftp.gnu.org/gnu/gnuradio/gnuradio-3.3.0.tar.gz
$ tar xzf gnuradio-3.3.0.tar.gz
$ cd gnuradio-3.3.0
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make -j2
$ sudo make install
$ sudo ldconfig
$ sudo ln -s gnuradio-companion /usr/bin/grc
$ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
   ○ CLI (man, help, advantages)
   ○ Pipes
   ○ Basic scripting
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
● CRC-DabMux
In the beginning, was the command line

$ make love
make: *** No rule to make love. Stop.

$ whatis sex
sex: nothing appropriate

$ %blow
%blow: no such job

$ man woman
No manual entry for woman
Pipes are fun!




Src :http://www.smashbros.com/en_us/howto/technique/technique06.html
Script essential

#!/bin/bash

{your commands here}

{multi-line 
command}

{command to run in background &}
Script permissions

$ chmod u+x {script name}
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
   ○ Usage
● CRC-Dwap
● CRC-DabMux
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
   ○ Usage
● CRC-DabMux
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
● CRC-DabMux
  ○ DAB multiplex overview
  ○ Simple configuration
  ○ Configuring outputs
  ○ Configuring inputs
  ○ Configuring services information
  ○ Complex configuration
DAB Multiplex
CRC-DabMux Flowgraph
Simple configuration

#!/bin/bash

FREQUENCY=1459792000

CRC-DabMux 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -C 
  -O fifo:///dev/stdout |
CRC-DabMod -r3200000 -c128000000 -g1 |
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Service information

#!/bin/bash

FREQUENCY=1459792000

CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" 
    -S -L "CRC Service" -l "CRC Svc" -C 
  -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Complex configuration

CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" 
     -S -L "CRC DAB" -l "CRC DAB" -C 
  -F "/usr/share/crc-dabmux/CRC pub-40k.lfa" -b 40 
     -S -L "CRC DAB+" -l "CRC DAB+" -C 
  -M "CrcYouTube_AAC.ts" -b 384 
     -S -L "CRC DMB" -C -t 24 
  -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Service encoding

● Audio
● Multimedia
Service encoding

● Audio
  ○ DAB
  ○ DAB+
  ○ Celt
  ○ Internet source
● Multimedia
CRC-Dabplus installation

$ tar xzf crc-dabplus-distrib-{version}.tar.gz
$ sudo dpkg -i crc-dabplus-{version}/packages/*.deb
Testing audio cards

$ crc-dabplus -i card://list
Available capture card devices:
hw:0
hw:0,0
hw:0,0,0 (name: HDA Generic)
$ gst-launch alsasrc device=hw:0 ! audio/x-raw-int,width=16,
rate=48000,channels=2 ! alsasink sync=false
DAB+ real-time encoding

if [ ! -e fifo ]; then mkfifo fifo; fi

CRC-DabMux 
   -F fifo -k -b 32 -S -C 
   -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY} &
crc-dabplus -i card:// -o file://fifo -b 32 -c 2

wait
DAB real-time encoding


CRC-DabMux 
    -F fifo -k -b 192 -S -C 
...

gst-launch alsasrc device=hw:0 ! 
  audioconvert ! audioresample ! 
  audio/x-raw-int,width=16,rate=48000,channels=2 ! 
  filesink location=/dev/stdout | 
toolame -s 48 -e -r -D 0 -b 192 - fifo &
CELT real-time encoding


CRC-DabMux 
    -D fifo://fifo -b 96 -S -C 
...

gst-launch alsasrc device=plughw:0 !
  audio/x-raw-int,width=16,rate=48000,channels=2 ! 
  filesink location=/dev/stdout | 
celtenc --rate 48000 --stereo --framesize 576 
  --bitrate 94 - - | 
DabCeltCoder -E -b 96 -o fifo &
Internet stream real-time encoding


CRC-DabMux 
    -F fifo -k -b 64 
    -A ... -S -C -C -i0 -t60 -f2 -d 
...

mpg123 -w - --no-icy-meta http://maxxima.mine.nu:8000 | 
crc-dabplus -o file://fifo -b 64 &
Service encoding

● Audio
● Multimedia
  ○ DLS
  ○ DMB
  ○ Slideshow
Slideshow real-time encoding


CRC-DabMux 
    -P fifo -k -b 32 
    -A ... -S -C -C -i0 -t60 -f2 -d 
...

CRC-SlideShow {inbox_dir} -o fifo -p 6 -n -b 32 &
Other modulations

● FM
● DRM
Other modulations

● FM
   ○ Tx
   ○ Rx
   ○ Android
● DRM
Other modulations

● FM
● DRM
   ○ Tx
   ○ Rx
Installing DREAM

# Src: http://sourceforge.net/apps/mediawiki/drm

$ sudo apt-get isntall libasound2-dev libhamlib-dev fftw-dev
libqwt-dev libsndfile1-dev
$ wget http://downloads.sourceforge.net/project/drm/drm/1.
12b/drm-1-12b.tar.gz
$ tar xzf drm-1-12b.tar.gz
Installing DREAM: FAAD2

$ wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
$ tar xzf faad2-2.7.tar.gz
$ cd faad2-2.7
$ . bootstrap
$ ./configure --disbaled-shared -without-xmms --with-drm --
without-mpeg4ip
$ make
$ cp include/faad.h include/neaacdec.h ../drm/libs
$ cp libfaad/.libs/libfaad.a ../drm/libs
$ cd ..
Installing DREAM: FAAC

$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
$ tar xzf faac-1.28.tar.gz
$ cd faac-1.28
$ . bootstrap
$ ./configure --with-pic --disable-shared --without-mp4v2 --
enable-drm
$ make
$ cp include/faaccfg.h include/faac.h ../drm/libs
$ cp libfaac/.libs/libfaac.a ../drm/libs
$ cd ..
Installing DREAM:DREAM

$ cd drm
$ . bootstrap
$ ./configure
$ make
$ sudo cp linux/drm /usr/local/bin/dream
Conclusion

● GPL usage
● TODO

Weitere ähnliche Inhalte

Was ist angesagt?

The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectPartho Choudhury
 
A Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by PythonA Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by PythonAlbert Huang
 
Introduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU RadioIntroduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU RadioAlbert Huang
 
digital audio broadcasting
digital audio broadcastingdigital audio broadcasting
digital audio broadcastingRam B
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)Drew Fustini
 
Espruino - JavaScript for Microcontrollers
Espruino - JavaScript for MicrocontrollersEspruino - JavaScript for Microcontrollers
Espruino - JavaScript for MicrocontrollersDrew Fustini
 
SDR for radar 090623
SDR for radar 090623SDR for radar 090623
SDR for radar 090623Bertalan EGED
 
Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)Anees Akhtar
 
Free Software for Radio Broadcasting
Free Software for Radio BroadcastingFree Software for Radio Broadcasting
Free Software for Radio BroadcastingFrancois Lefebvre
 
Digital Audio Broadcasting By SAIKIRAN PANJALA
Digital  Audio Broadcasting By SAIKIRAN PANJALADigital  Audio Broadcasting By SAIKIRAN PANJALA
Digital Audio Broadcasting By SAIKIRAN PANJALASaikiran Panjala
 
Digital video broadcasting second generationq
Digital video broadcasting second generationqDigital video broadcasting second generationq
Digital video broadcasting second generationqSusmita Pandey
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platformBertalan EGED
 
Approach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkApproach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkAdrian Hornsby
 
Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio Tarik Kazaz
 

Was ist angesagt? (20)

The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) Project
 
Usrp family-09-open
Usrp family-09-openUsrp family-09-open
Usrp family-09-open
 
Gnu radio lecture
Gnu radio lectureGnu radio lecture
Gnu radio lecture
 
A Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by PythonA Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by Python
 
Introduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU RadioIntroduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU Radio
 
digital audio broadcasting
digital audio broadcastingdigital audio broadcasting
digital audio broadcasting
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)
 
Espruino - JavaScript for Microcontrollers
Espruino - JavaScript for MicrocontrollersEspruino - JavaScript for Microcontrollers
Espruino - JavaScript for Microcontrollers
 
intro_dgital_TV
intro_dgital_TVintro_dgital_TV
intro_dgital_TV
 
SDR for radar 090623
SDR for radar 090623SDR for radar 090623
SDR for radar 090623
 
Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)
 
A glance-at-voip
A glance-at-voipA glance-at-voip
A glance-at-voip
 
Free Software for Radio Broadcasting
Free Software for Radio BroadcastingFree Software for Radio Broadcasting
Free Software for Radio Broadcasting
 
Digital Audio Broadcasting By SAIKIRAN PANJALA
Digital  Audio Broadcasting By SAIKIRAN PANJALADigital  Audio Broadcasting By SAIKIRAN PANJALA
Digital Audio Broadcasting By SAIKIRAN PANJALA
 
Digital video broadcasting second generationq
Digital video broadcasting second generationqDigital video broadcasting second generationq
Digital video broadcasting second generationq
 
Technisat
TechnisatTechnisat
Technisat
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platform
 
Approach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkApproach to handover in heterogeneous Network
Approach to handover in heterogeneous Network
 
Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio
 
Multimedia Services: Audio
Multimedia Services: AudioMultimedia Services: Audio
Multimedia Services: Audio
 

Ähnlich wie EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop

Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Keisuke Takahashi
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideLinaro
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON
 
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge艾鍗科技
 
Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...Jordi Cenzano
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKMarian Marinov
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overviewJordi Cenzano
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021Valeriy Kravchuk
 
Raspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 updateRaspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 updateKevin Hooke
 
CCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management AutomationCCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management AutomationE.S.G. JR. Consulting, Inc.
 
Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesPrestoCentre
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioKevin Hooke
 
Plane Spotting
Plane SpottingPlane Spotting
Plane SpottingTed Coyle
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsXiaozhe Wang
 

Ähnlich wie EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop (20)

Debugging 2013- Jesper Brouer
Debugging 2013- Jesper BrouerDebugging 2013- Jesper Brouer
Debugging 2013- Jesper Brouer
 
Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge
 
2 netcat enum-pub
2 netcat enum-pub2 netcat enum-pub
2 netcat enum-pub
 
Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overview
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
 
CRC MMB Projects and Tools
CRC MMB Projects and ToolsCRC MMB Projects and Tools
CRC MMB Projects and Tools
 
Raspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 updateRaspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 update
 
100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
 
CCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management AutomationCCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management Automation
 
Deploy your own P2P network
Deploy your own P2P networkDeploy your own P2P network
Deploy your own P2P network
 
Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and Processes
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur Radio
 
Plane Spotting
Plane SpottingPlane Spotting
Plane Spotting
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
 

Kürzlich hochgeladen

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Kürzlich hochgeladen (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop

  • 1. CRC-mmbTools Software Radio Workshop Pascal.Charest @ crc . ca Communications Research Centre, Canada EBU-EUR Digital Radio Week Geneva, February 2011
  • 2. Overview ● Introduction ● CRC-mmbTools live CD and website ● CRC FLOSS DAB tools usage ● Service encoding ● Other modulations ● Conclusion
  • 3. CRC-mmbTools live CD and website ● Introduction ○ A word about the live CD ○ Ubuntu ○ Papers ● Workshop's frequency allotment plan ● Tools overview ● Demos ● Installation
  • 4. Major Papers ● An Experimental DAB Delivery Platform For Internet Broadcast Services, F. Lefebvre, IBC 2002 ● End-to-end Mobile Multimedia Broadcasting Software Tools, F. Lefebvre, P. Charest, IBC 2006 ● Software Implementation of the DMB Transmission System, P. Charest, F.Lefebvre, WOC 2007 ● Software DAB Transmitter On Live CD, P. Charest, F. Lefebvre, WOC 2008 ● Open source handhelds: a broadcaster-led innovation for BTH services. F. Lefebvre, J.-M. Bouffard, P. Charest. EBU Technical Review - Best of 2008. ● The Openmokast Open Source Framework: Towards User Innovation In The Mobile Broadcasting Application Space, F. Lefebvre, J.-M. Bouffard, P. Charest, IBC 2009
  • 5. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ○ Let's do it! ■ Band III: 10C-13F ■ Band L: any ● Tools overview ● Demos ● Installation
  • 6. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ● Tools overview ○ Applications ○ Documentation ○ Demonstration scripts ● Demos ● Installation
  • 7. CPU Requirements Minimum CPU requirements? We don't know, but here's a list of CPU that don't work: ● Pentium M 715 @ 1.5 GHz, PassMark 393 ● Intel Atom 330 @1.6 GHz, PassMark 633 Benchmark score are from PassMark: http://www.cpubenchmark.net/cpu_list.php Please, choose a CPU more powerfull than one listed above.
  • 8. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ● Tools overview ● Demos ○ Using the scripts ○ CRC mmbTools website ● Installation
  • 9.
  • 11. CRC-mmbTools live CD and website ● Introduction ● Tools overview ● Workshop's frequency allotment plan ● Demos ● Installation ○ From the live CD ○ From USB ○ To a virtual machine ○ Gnuradio update (for WBX)
  • 12. Gnuradio update $ sudo apt-get remove -y gnuradio gnuradio-doc libgnuradio libgnuradio-core libgnuradio-omnithread libgruel python- gnuradio-core libusrp usrp-doc python-wxgtk2.6 $ sudo apt-get -y install git-core autoconf libtool python-dev swig libfftw3-dev libcppunit-dev libusb-dev libboost1.37-dev guile-1.8-dev sdcc-nf libsdl1.2-dev libgsl0-dev
  • 13. Gnuradio update (old instructions) ### Old instructions, please use next slide instead ### $ git clone http://gnuradio.org/git/gnuradio.git $ cd gnuradio $ git checkout v3.3.0 $ ./bootstrap $ ./configure --prefix=/usr --sysconfdir=/etc $ make -j2 $ sudo make install $ sudo ldconfig $ sudo ln -s gnuradio-companion /usr/bin/grc $ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
  • 14. Gnuradio update (new instructions) $ wget http://ftp.gnu.org/gnu/gnuradio/gnuradio-3.3.0.tar.gz $ tar xzf gnuradio-3.3.0.tar.gz $ cd gnuradio-3.3.0 $ ./configure --prefix=/usr --sysconfdir=/etc $ make -j2 $ sudo make install $ sudo ldconfig $ sudo ln -s gnuradio-companion /usr/bin/grc $ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
  • 15. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ○ CLI (man, help, advantages) ○ Pipes ○ Basic scripting ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ● CRC-DabMux
  • 16. In the beginning, was the command line $ make love make: *** No rule to make love. Stop. $ whatis sex sex: nothing appropriate $ %blow %blow: no such job $ man woman No manual entry for woman
  • 17. Pipes are fun! Src :http://www.smashbros.com/en_us/howto/technique/technique06.html
  • 18. Script essential #!/bin/bash {your commands here} {multi-line command} {command to run in background &}
  • 19. Script permissions $ chmod u+x {script name}
  • 20.
  • 21. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ○ Usage ● CRC-Dwap ● CRC-DabMux
  • 22. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ○ Usage ● CRC-DabMux
  • 23. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ● CRC-DabMux ○ DAB multiplex overview ○ Simple configuration ○ Configuring outputs ○ Configuring inputs ○ Configuring services information ○ Complex configuration
  • 26. Simple configuration #!/bin/bash FREQUENCY=1459792000 CRC-DabMux -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 27. Service information #!/bin/bash FREQUENCY=1459792000 CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -L "CRC Service" -l "CRC Svc" -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 28. Complex configuration CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -L "CRC DAB" -l "CRC DAB" -C -F "/usr/share/crc-dabmux/CRC pub-40k.lfa" -b 40 -S -L "CRC DAB+" -l "CRC DAB+" -C -M "CrcYouTube_AAC.ts" -b 384 -S -L "CRC DMB" -C -t 24 -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 30. Service encoding ● Audio ○ DAB ○ DAB+ ○ Celt ○ Internet source ● Multimedia
  • 31. CRC-Dabplus installation $ tar xzf crc-dabplus-distrib-{version}.tar.gz $ sudo dpkg -i crc-dabplus-{version}/packages/*.deb
  • 32. Testing audio cards $ crc-dabplus -i card://list Available capture card devices: hw:0 hw:0,0 hw:0,0,0 (name: HDA Generic) $ gst-launch alsasrc device=hw:0 ! audio/x-raw-int,width=16, rate=48000,channels=2 ! alsasink sync=false
  • 33. DAB+ real-time encoding if [ ! -e fifo ]; then mkfifo fifo; fi CRC-DabMux -F fifo -k -b 32 -S -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY} & crc-dabplus -i card:// -o file://fifo -b 32 -c 2 wait
  • 34. DAB real-time encoding CRC-DabMux -F fifo -k -b 192 -S -C ... gst-launch alsasrc device=hw:0 ! audioconvert ! audioresample ! audio/x-raw-int,width=16,rate=48000,channels=2 ! filesink location=/dev/stdout | toolame -s 48 -e -r -D 0 -b 192 - fifo &
  • 35. CELT real-time encoding CRC-DabMux -D fifo://fifo -b 96 -S -C ... gst-launch alsasrc device=plughw:0 ! audio/x-raw-int,width=16,rate=48000,channels=2 ! filesink location=/dev/stdout | celtenc --rate 48000 --stereo --framesize 576 --bitrate 94 - - | DabCeltCoder -E -b 96 -o fifo &
  • 36. Internet stream real-time encoding CRC-DabMux -F fifo -k -b 64 -A ... -S -C -C -i0 -t60 -f2 -d ... mpg123 -w - --no-icy-meta http://maxxima.mine.nu:8000 | crc-dabplus -o file://fifo -b 64 &
  • 37. Service encoding ● Audio ● Multimedia ○ DLS ○ DMB ○ Slideshow
  • 38. Slideshow real-time encoding CRC-DabMux -P fifo -k -b 32 -A ... -S -C -C -i0 -t60 -f2 -d ... CRC-SlideShow {inbox_dir} -o fifo -p 6 -n -b 32 &
  • 40. Other modulations ● FM ○ Tx ○ Rx ○ Android ● DRM
  • 41. Other modulations ● FM ● DRM ○ Tx ○ Rx
  • 42. Installing DREAM # Src: http://sourceforge.net/apps/mediawiki/drm $ sudo apt-get isntall libasound2-dev libhamlib-dev fftw-dev libqwt-dev libsndfile1-dev $ wget http://downloads.sourceforge.net/project/drm/drm/1. 12b/drm-1-12b.tar.gz $ tar xzf drm-1-12b.tar.gz
  • 43. Installing DREAM: FAAD2 $ wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz $ tar xzf faad2-2.7.tar.gz $ cd faad2-2.7 $ . bootstrap $ ./configure --disbaled-shared -without-xmms --with-drm -- without-mpeg4ip $ make $ cp include/faad.h include/neaacdec.h ../drm/libs $ cp libfaad/.libs/libfaad.a ../drm/libs $ cd ..
  • 44. Installing DREAM: FAAC $ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz $ tar xzf faac-1.28.tar.gz $ cd faac-1.28 $ . bootstrap $ ./configure --with-pic --disable-shared --without-mp4v2 -- enable-drm $ make $ cp include/faaccfg.h include/faac.h ../drm/libs $ cp libfaac/.libs/libfaac.a ../drm/libs $ cd ..
  • 45. Installing DREAM:DREAM $ cd drm $ . bootstrap $ ./configure $ make $ sudo cp linux/drm /usr/local/bin/dream