Normally all audio pipelines use an audio codec and RTP encapsulation. I searched a lot for a raw audio pipeline, but I could not find much information. Then, I tried different options and came up with the following.

gst-launch-1.0 -v filesrc location=/tmp/musicfile.mp3 ! mpegaudioparse ! mpg123audiodec ! audioconvert ! audioresample ! audio/x-raw, rate=16000, channels=1, format=S16LE ! audiomixer blocksize=320 ! udpsink host= port=10000

This above pipeline takes audio from an MP3 file, decodes it, changes the format to 16 KHz mono, and then sends it to the network using UDP. Audio mixer is used just to send the frame size of 10 msec amounting to 320 bytes of data.

gst-launch-1.0 -v udpsrc port=10000 ! rawaudioparse use-sink-caps=false format=pcm pcm-format=s16le sample-rate=16000 num-channels=1 ! queue ! audioconvert ! audioresample ! autoaudiosink

To play the same from network the above pipeline could be used.


One of the primary uses of petroleum is as fuel. As the average carbon dioxide levels have already gone above 400 ppm and global warming is taking place, there have been many calls to reduce the usage of petroleum by substituting it with renewable energy. Biofuels stand very distinct among all other renewables because they could be easily used as a drop in replacement for petroleum based fuels.

Petroleum usage

Around 84 percent of the distillates are used as fuels including diesel, gasoline(petrol), kerosene, LPG etc. Considering the oil usage at 94 million barrels per day, this amounts to 4585 billion litres per year.

Biofuel yield

Different biofuel crops have different yields. Typical values are given below.
Biofuel Production L/Ha

Land Requirement to replace the entire petroleum based fuel

Considering the above yield and the amount of petroleum used as fuel, total land usage of different crops to replace the entire petroleum based fuel could be calculated. For comparison two forms of other data is also provided. 1) Total arable and agricultural land available. 2) Land area of some of the larger countries in the world.
Biofuel Production L/Ha

Could Brazil increase the ethanol production 100 times utilizing the entire area of Brazil itself? Otherwise could the entire Sahara Desert or the United States be used for producing palmoil based biodiesel? Could any of these options be possible without touching the remaining tropical rainforests in the world?

As far as land usage is concerned, algae is the only source with a potential to replace the entire petroleum usage. But it is still a reasearch topic for many years, far away from being commerically available.

Both ffmpeg and vlc are two of the important applications in free software media processing. I wanted to compile both to incorporate latest codecs, x264 and libvpx for video along with aac and libopus for audio. This is what I have done on Debian unstable.

For my purpose, I was compiling these codecs from source. To use the development libraries and headers given by Debian, one has to install the following packages, sudo is used to denote usage of root

sudo apt-get install libfaad-dev libfaac-dev libx264-dev libvpx-dev libopus-dev

Instead of using the development pacakges provides by Debian, I was compiling and installing these libraries to /opt. To use proper package config paths for both ffmpeg and vlc, one has to do export PKG_CONFIG_PATH or alternatively supply then to the configure script.

export PKG_CONFIG_PATH=/opt/lib/pkgconfig

Downloading the corresponding source code

# faac
wget -c http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
# faad
wget -c http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
# x264
git clone git://git.videolan.org/x264.git
# libvpx
git clone https://chromium.googlesource.com/webm/libvpx
# opus
git clone http://git.xiph.org/opus.git
# ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git
# vlc
git clone git://git.videolan.org/vlc.git

As I mentioned above, I was using /opt as the prefix. These are the compilation commands used. Replace the number of CPU cores with “-jN” option of make.

# faac
./configure --prefix=/opt
# comment out line 126 of faac-1.28/common/mp4v2/mpeg4ip.h
# strcasestr in case of any compilation error
make -jN
sudo make install
# faad
./configure --prefix=/opt
make -jN
sudo make install
# x264
sudo apt-get install yasm # install dependencies
./configure --prefix=/opt --enable-shared
make -jN
sudo make install
# libvpx
sudo apt-get install yasm #install dependencies
./configure --prefix=/opt --enable-vp8 --enable-vp9 --enable-shared
make -jN
sudo make install
# libopus
./configure --prefix=/opt
make -jN
sudo make install


# install these extra package dependencies:
sudo apt-get install libopenjpeg-dev libvorbis-dev libschroedinger-dev libvpx-dev libopus-dev
./configure --prefix=/opt --extra-cflags='-Wall -g -I/opt/include/' --extra-ldflags='-L/opt/lib/' --enable-avfilter --enable-libschroedinger --enable-libvpx --enable-libspeex --enable-libtheora --enable-libopus --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --enable-runtime-cpudetect --enable-libfaac --enable-libx264 --enable-postproc --enable-swscale --enable-x11grab --enable-libopenjpeg --enable-shared --enable-gpl --enable-nonfree --disable-static --disable-stripping --disable-altivec --disable-armv5te --disable-armv6 --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages
make -jN
sudo make install


# package dependencies:
apt-get install libtool gettext cvs libfaad-dev libfaac-dev libswscale-dev libpostproc-dev libqt4-dev libgcrypt20-dev libdbus-1-dev lua5.2 liblua5.2-dev libproxy-dev libdvbpsi-dev liblivemedia-dev libnotify-dev libshout3-dev libdca-dev libflac-dev libmpeg2-4-dev libmpeg3-dev libsdl2-dev libgnutls28-dev libavc1394-dev libsmbclient-dev libtwolame-dev liba52-0.7.4-dev libfribidi-dev libjack-dev libmad0-dev
# a few more extra dependencies:
apt-get install libcdio-dev libvcdinfo-dev libpulse-dev libxml2-dev libmodplug-dev libnotify-dev libcaca-dev libncursesw5-dev libxpm-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-keysyms1-dev libxcb-randr0-dev libx11-xcb-dev libxcb-composite0-dev
./configure --prefix=/opt --disable-update-check --disable-gnome --disable-gtk --disable-familiar --disable-fb --enable-sdl --enable-esd --enable-mad --enable-arts --disable-jack --enable-pulse --enable-lirc --enable-a52 --enable-aa --enable-dvbpsi --without-dv-raw1394 --disable-dc1394 --disable-kde --enable-mp4 --enable-dvb --disable-satellite --enable-ogg --enable-vorbis --enable-shout --enable-qt4 --disable-slp --enable-flac --disable-skins --disable-basic-skins --enable-skins2 --enable-freetype --enable-mkv --enable-speex --enable-caca --enable-live555 --enable-libmpeg2 --enable-fribidi --enable-cdio --enable-mod --enable-theora --enable-modplug --enable-gnutls --enable-ffmpeg --enable-ncurses --enable-smb --disable-gnomevfs --enable-bonjour --enable-mpc --enable-vcd --enable-vcdx --enable-twolame --enable-x264 --enable-faad -enable-faac --enable-vpx --enable-opus --enable-xcb --disable-zvbi --enable-telx --enable-mediacontrol-bindings --disable-atmo --enable-taglib --enable-libass --enable-libdca --enable-alsa --disable-dv --disable-dvdnav --disable-notify --enable-v4l --enable-v4l2 --enable-pvr --enable-dvd --without-dvdcss CPPFLAGS='-I/opt/include' CFLAGS='-g -O2 -I/opt/include' LDFLAGS='-L/opt/lib -Wl,--as-needed' CXXFLAGS='-g -O2' PKG_CONFIG_PATH='/opt/lib/pkgconfig:/usr/lib/pkgconfig'
make -jN
sudo make install

Recently I bought an Airtel 3G connection using Huawei E1731Bu-1 USB modem. As usual, I wanted to get it working in Debian GNU/Linux amd64 version. As a first step, installed the following packages using apt-get.

sudo apt-get install ppp pppconfig wvdial

Normally this modem is detected properly, but I was curious to know the extra modules loaded when it is connected. So, I tried lsmod before and after connecting the device and found the following extra modules.

cdc_ether, mii, option, usbnet, usbserial, usb_storage, usb_wwan


First, I tried to configure wvdial since that seems to be the easiest thing to try. Google gave me reference to PJP’s website.


He was kind enough to answer my questions also.

Pon and Poff

WvDial is great. But, I wanted to try Pon and Poff also. They offer a few advantages over wvdial. As an “original” command, many distributions support them out of the box where as wvdial has to be installed separately. There used be a lot of problems in using WvDial on ARM based systems because of getcontext/setcontext support on ARM.

Already I experienced that while using EC1261 Tata Photon, posted the following on Debian forum.



For my Debian desktop, I used pppconfig with the following configuration. But, it did not create a proper /etc/chatscripts/airtel. So, I had to update it to the one given at bottom.

Change 98xxxxxxxx to the mobile number associated with the modem.

pppconfig options

Create Create a connection

Provider Name: airtel
Configure Nameservers (DNS): None
Authentication Method for airtel: Peer Authentication Protocol
User Name: 98xxxxxxxx
Password: 98xxxxxxxx
Speed: 460800
Pulse or Tone: Tone
Phone Number: *99#
Choose Modem Config Method: No
Manually Select Modem Port: /dev/ttyUSB0

Finished Write files and return to main menu.

For the Debian laptop, instead of using pppconfig, I just copied the following generated files from desktop, set the ownership and permissions properly.

cp /path/to/chatscripts/airtel /etc/chatscripts/airtel
chown root:dip /etc/chatscripts/airtel
chmod 640 /etc/chatscripts/airtel

cp /path/to/ppp/pap-secrets /etc/ppp
chown root:root /etc/ppp/pap-secrets
chmod 600 /etc/ppp/pap-secrets

cp /path/to/ppp/peers/airtel /etc/ppp/peers/airtel
chown root:dip /etc/ppp/peers/airtel
chmod 640 /etc/ppp/peers/airtel

That is all. You could use pon/poff to connect and disconnect to the network.

pon airtel
poff airtel

MobilePartner Application

Surprisingly, I could get Airtel application to work. Note that we absolutely do not require this to connect to the network. But, it is good to have it, since it is easy to check 3G Balance using *123*11#. It is also helpful while sending and receiving SMS.

There is a CDROM device associated with the modem. It could be found using the “dmesg” command.

sr1: scsi-1 drive
sr 12:0:0:0: Attached scsi CD-ROM sr1

That means the device is /dev/sr1. Just mount it and install it.

sudo mount /dev/sr1 /media/cdrom
cp -fr /media/cdrom/Linux /tmp
cd /tmp/Linux
sudo ./install

You may find a few errors because it is trying to install “NDIS” driver, but it could be ignored since we are not planning to use NDIS driver to connect to the network. By default it is installed in /usr/local/airtel directory. Start the “/usr/local/airtel/MobilePartner” application.


These are the Configurations I used.


cat /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","airtelgprs.com"
Modem Type = Analog Modem
Phone = *99#
Username = 98xxxxxxxx
Password = 98xxxxxxxx
New PPPD = yes
Modem = /dev/ttyUSB0
Baud = 460800
Stupid Mode = 1


cat /etc/chatscripts/airtel
# This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments. Pppconfig needs them.
# ispauth PAP
# abortstring


# modeminit
'' ATZ
OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
OK 'AT+CGDCONT=1,"IP","airtelgprs.com"'

# ispnumber
# ispconnect
# prelogin

# ispname
# isppassword
# postlogin

# end of pppconfig stuff


cat /etc/ppp/pap-secrets
# /etc/ppp/pap-secrets
# This is a pap-secrets file to be used with the AUTO_PPP function of
# mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option
# which will cause pppd to consult /etc/passwd (and /etc/shadow in turn)
# after a user has passed this file. Don't be disturbed therefore by the fact
# that this file defines logins with any password for users. /etc/passwd
# (again, /etc/shadow, too) will catch passwd mismatches.
# This file should block ALL users that should not be able to do AUTO_PPP.
# AUTO_PPP bypasses the usual login program so it's necessary to list all
# system userids with regular passwords here.
# ATTENTION: The definitions here can allow users to login without a
# password if you don't use the login option of pppd! The mgetty Debian
# package already provides this option; make sure you don't change that.

# INBOUND connections

# Every regular user can use PPP and has to use passwords from /etc/passwd
* hostname "" *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest hostname "*" -
master hostname "*" -
root hostname "*" -
support hostname "*" -
stats hostname "*" -

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

# * password

"98xxxxxxxx" airtel "98xxxxxxxx"


cat /etc/ppp/peers/airtel
# This optionfile was generated by pppconfig 2.3.18.
connect "/usr/sbin/chat -v -f /etc/chatscripts/airtel"
user "98xxxxxxxx"
remotename airtel

Ships of the desert grazing near deserted ships in Aral Sea desert

Baikonur Cosmodrome, Kazakhstan – First ever window to space. Beginning of the space age was one of the greatest achievements of mankind since the dawn of civilization. Many space scientists, explorers and researchers had gone through the arid steppes of this small Central Asian town. That list includes Sputnik scientists, Yuri Gagarin and many of the International Space Station travelers.

Double Humped Wild Bactrian Camels grazing near abandoned ships in Aral Sea desert

Just 250 km north west of Baikonur lies another small town, supposed to be on the banks of Aral Sea, named Aralsk. Aral Sea was the 4th largest lake by area and 12th largest lake by volume until 1960. It had an area of 68000 square kilometers and a volume of 1100 cubic kilometers. The lake had one third salinity of sea water at around 10g/L. It was fed by two of the largest river ecosystems of Central Asia namely Amu Darya and Syr Darya. Historically known as Oxus and Jaxtares, these two rivers were very famous throughout the Achaemenid Persian, Greek and Arab periods. Amu Darya and Syr Darya have a mean discharge of 97.4 cubic kilometers and 37 cubic kilometers respectively. Source of their water is from the glaciers of Pamir and Tian Shan mountains. Rain water could not contribute much as these steppes are extremely arid with a rainfall of around 30 cm / 12 inches. Temperature could go anywhere between -45 Degree Celsius to 45 Degree Celsius depending upon seasons.

Aral Sea is shared between both Kazakhstan and Uzbekistan. Until around 1960 two towns flourished on the banks of Aral Sea, Aralsk on the north east in Kazakhstan and Muynak on the south west in Uzbekistan. Both were important fishing towns with harbors and processing industry. Uzbekistan used to get around 60% of their fish, that is 25000 tonnes of fish from Aral Sea itself

Things started changing around 1955-1960 when Soviet Union started to improve their agriculture output. Many dams and canals were built to divert large amount of water for irrigation. This reduced the amount of water reaching Aral Sea drastically and Aral Sea started getting dried up very fast. Currently Aral sea got split up into 4 lakes including North Aral Sea and South Aral Sea with a total area of around 6800 square kilometers which is only 10% of its original size. Lake salinity got increased to around 100g/L destroying all fish in the lake.

Aral Sea: Map vs. Satellite image

Cotton Production:

Cotton production also took off like the Soviet space program during 1960s. Uzbekistan’s production increases from 300000 MT in 1950 to around 3 Million MT in mid 1980s. Most of the the cotton was cultivated as a monoculture without crop rotation. This required huge amount of pesticides and chemical fertilizers. Lots of pesticides and fertilizers reached Aral Sea due to run off. Cotton requires large amount of water and virtually all of this water is sourced from Amu Darya and Syr Darya.

Per Capital Water Usage:

Central Asian countries of Turkmenistan, Kazakhstan and Uzbekistan have the highest per capital water usages. Most of the water is sourced from Amu Darya and Syr Darya and used for irrigating cotton plantations.

Per Capital Water Usage of Countries

Environmental issues:

There are many environmental problems associated with aral sea crisis. Farming without crop rotation depletes soil of nutrients and increases the salt content in the soil. Cotton production of Uzbekistan went down by half from its peak values during 1980s.

Aralkum is the new desert appeared on the dried up seabed of Aral Sea. It is estimated that Aralkum has an area of around 55000 square kilometers. It is a mixture of sand, salt, run-off pesticides and fertilizers. About 200000 Tonnes of salt and sand are carried by the wind from Aral Sea everyday and dumped withing 300 km radius. This pollution is decreasing available agricultural area due to salt content. This increases respiratory problems in people. There have been instances of this pollution reaching as far as the Arctic north of Russia.

A view from Muynak Port in Uzbekistan: abandoned ships

Difference approaches of Kazakhstan and Uzbekistan

Out of all countries in the Amu Darya and Syr Darya region, Kazakhstan is taking some effort to restore North Aral Sea. They have created Kok Aral Dam in 2005 with the help of World Bank spending $64 Million. This dam traps water from Syr Darya and redirect it back to North Aral Sea. Due to this water levels in North Aral Sea is increasing and its salinity is going down. Aralsk used to be around 100 km away from North Aral Sea in 2005, but after the construction of the Dam it is around 6 km away. Also area of North Aral Sea got increased from around 2550 square km in 2003 to 3300 square km in 2008.

Cranes near dried up Aral Sea in Aralsk port, Kazakhstan

On the other side, Uzbekistan has not done anything practically to restore Aral Sea. Some figures says that around 50000 people of Karakalpakstan region of Uzbekistan have already left their places due to pollution.

Hope Central Asian countries would give more importance to restoring Aral Sea to its original form.

Solar energy is considered as the ultimate source of energy. In the last few years due to technology and abundant production of silicon, solar technology has become very commercially viable and it is rapidly approaching grid parity.

Effect of this could be seen in transportation also. Numerous solar vehicles have been tried or announced. Some of them are solar airplanes and solar powered ships. As a solar enthusiast, it looks very interesting to me. But, after looking at some of the traditional ‘flagship’ vessels and aircrafts, it is a different story. Some of the details are given below.

Largest aircraft ever built is the Soviet Antonov 225, with a maximum take off weight (MTOW) of 640 Metric Tonnes. But, practically the most widely used heavy aircraft is Boeing 747 with an MTOW of around 450 Metric Tonnes.

Consider the case of this aircraft becoming solar powered. The first choice is to fit solar panels on top of the wings and next, on top of the aircraft itself. How much area could be covered? As per Wikipedia, the wing area is around 550m2. The aircraft has a length of 70 metres and a width of 6 metres. So combining together, totally around 1000m2 would be available. With solar radiation of around 1000W/m2, total available solar energy reaches 1MW typically. For this exercise, we do not care about the cost of the solar cell, so let us consider one of the best triple junction cells at 40% efficiency. After installing, we could get 400KW of electricity.

Coming to the ocean front, the largest ship ever built was Seawise Giant or Knock Nevis with a DWT of 564763 Metric Tonnes. Her length was 458 metres and the deck area was 31541 m2. That one is an oil tanker, where as the largest container ship is Emma Maersk.

Let us repeat the previous exercise, Knock Nevis could collect a maximum of around 32MW of solar energy. With the best solar panels, around 12.8MW of electricity could be produced.

Note that this is the maximum solar power production. We are not at all considering about electricity storage system so that power is available when Sun is not shining.

Now let us see the energy requirement of these aircrafts and ships. Boeing 747 engines could produce around 1000kN of thrust where as it could carry more than 150 Metric Tonnes of fuel. During take off time, the fuel consumption rate is around 12000 US Gallons per hour, that is 10.25 kgs of fuel per second. With an energy density of 43MJ/kg, and a typical turbofan engine efficiency of 35 percent, that comes to 150MW of power production.

Coming back to Emma Maersk. The main engine produces 81MW and electrical generators produce 30MW. Fuel consumption could reach around 20 Metric Tonnes per hour. These ships carry around 5000 to 1000 Metric Tonnes of fuel.

That is the main point. Don’t think about a trip to Hawaii in a solar powered aircraft or cruise liner. A 747 requires around 400 times more power compared to what the best solar panels could produce, where as Emma Maersk requires around 8 times more. Even though solar could not be used for primary power, it could be used for a lot of auxiliary power applications.

Correction:The word ‘aircraft’ is both singular and plural. As per correct English, ‘aircrafts’ is not a correct word.

I was looking at the statistics of power consumption of the world. From all forms of energy sources we are currently using around 15TW of power. Whereas, solar energy reaching our Earth is 6000 times more than our energy consumption.

Sun radiates energy in all directions and only a very tiny portion of that reaches our Earth. Thermonuclear fusion of hydrogen into helium is the source of solar energy. 620 Million Metric Tonnes of hydrogen is consumed every second. A small portion of that, that is 4.26 Million Metric Tonnes is fully transformed into energy to produce 3.846 x 10^26 Watts. Sun consumes an Earth Mass equivalent of hydrogen in 305000 years producing an Earth Mass equivalent of energy in every 45 Million years. So the mass of the Sun is getting reduced by one Earth Mass in this period of time. In the 4.5 Billion year history of the Solar system, Sun produced around 100 Earth Mass equivalent of energy. That seems to be very huge, but that is only 0.03% of the Solar mass.

But remember that our Sun is an ordinary star in our galaxy, the Milky Way. There are many billion stars in the Milky Way and there are many billion galaxies in the Universe.

Many of the stars we see are actually much brighter than the Sun, but do not appear bright because of the larger distance. The term ‘Luminosity’ is used to measure the brightness of a star without considering its distance. Luminosity is the measure of the energy production of the star relative to that of our Sun.

The most luminous first order magnitude star is Deneb belonging to Cygnus constellation. It is around 200000 as bright as the Sun.

The Super Powers of Orion

From antiquity, Orion is regarded as one of the most prominent constellations. It is also an interesting fact that Orion has some of the important first order magnitude stars.

Betelgeuse: Known as Alpha Orionis. It is a red supergiant with a diameter more than 1000 times that of Sun. Placed in the centre of the Solar system that would reach upto Jupiter. It produces around 140000 time more energy compared to the Sun. That is an Earth Mass equivalent of energy in 320 years. Had Betelgeuse been our nearest visible star instead of Alpha Centauri, it would have been nearly as bright as the full Moon.

Rigel: On the other side, it is a blue supergiant also known as Beta Orionis. It has a luminosity of more than 100000 that of the Sun. If a planet has to get similar amount of light as our Earth, it has to be at a distance of more than 300AU, that means at a distance 8 times that of Pluto.

Alnilam, Alnitak, Mintaka: These three stars form the belt of Orion. All of them are blue supergiants with a luminosity more than 100000 as the Sun.

While seeing those “Twinkle Twinkle Little Stars”, do remember that they produce unimaginable amount of energy.

%d bloggers like this: