Live-TV op Android met transcoding

Door Soldaatje op zondag 15 september 2013 01:50 - Reacties (4)
Categorie: -, Views: 3.245

In deze blog leg ik uit hoe je transcoding aan de praat krijgt met Tvheadend onder Ubuntu.
Transconding is handig als je bijvoorbeeld Mpeg2 Digitenne binnen krijgt op je tv-kaart, dan kan je dit transcoden naar H264 om bandbreedte te besparen en de stream uploaden over je internetverbinding en onderweg via 3G/4G/Wifi bekijken op je Android toestel.

Benodigdheden:
- een Ubuntu-server met hardware die snel genoeg is om te transcoden, afhankelijk van het bronmateriaal;
- een dvb-adapter voor tvheadend;

Deze code is nog experimenteel en dus nog niet geactiveerd in de release-kanalen, voor zover heb ik het als stabiel ervaren.

Je kan mijn gecompileerde bestanden gebruiken uit de link hieronder of zelf compileren.
Ik heb niks veranderd aan de broncode behalve de transcoding-opties aangezet in de Tvhguide-app.

Link naar binaries

De .deb is gebouwd voor Precise maar werkt ook op mijn Raring 13.04.
De andere twee .deb's (changes en dbg) zijn optioneel.

Korte uitleg zelf compileren tvheadend:

- download tvheadend source;

code:
1
2
3
git clone https://github.com/tvheadend/tvheadend
cd tvheadend
./configure

Hier zal ./configure gaan klagen over afhankelijkheden, dus die moeten dan geinstalleerd worden, helaas heb ik daar nu even geen lijstje van maar de meeste afhankelijkheden beginnen met lib en eindigen met -dev.

- compileer tvheadend;

code:
1
make

- maak .deb's;

code:
1
./Autobuild.sh -t precise-amd64

- installeer tvheadend;

code:
1
sudo dpkg -i ../tvheadend*.deb

- activeer Transcoding-Enabled vinkje in Tvheadend webinterface Configuration-General;
- stel de rest in van tvheadend zoals een DVB-bron;

Korte uitleg zelf compileren tvhguide-app:

- download en installeer Android SDK ADT bundle;
http://developer.android.com/sdk/index.html
- download Tvhguide van github;

code:
1
git clone https://github.com/john-tornblom/TVHGuide

- importeer Tvhguide in eclipse;
- verwijder comment-block tags in 'res/xml/preferences.xml';
- vervang/edit regel-code in 'src/org/tvheadend/tvhguide/ExternalPlaybackActivity.java' als volgt:

code:
1
Boolean transcode = prefs.getBoolean("transcodePref", true);

- compileer Tvhguide, druk op Run in het menu;
- installeer gebouwde .apk op je toestel (onbekende bronnen aan zetten) .apk is te vinden in de 'bin' subdirectory van de source.
- stel de app in zoals hostname/ip-adres, ports, password, etc.

Als de app de video niet afspeelt probeer dan een externe mediaplayer, bijvoorbeeld MX Player en speel wat met de decoder instellingen.
Op mijn tablet met Android 4.04 moest ik mediacontainer in de app zetten op Mpeg-TS ipv Matroska.
Als je een beetje krap met je databundel zit kan je beter Wifi gebruiken of de resolutie verlagen in de app.

Vergeet niet poorten 9981 en 9982 open te zetten in je router als je over internet wilt kijken + een fatsoenlijk wachtwoord voor tvheadend.

Veel kijkplezier!

Dank aan de makers van deze software.

Reacties


Door Tweakers user jozy, maandag 16 september 2013 09:45

Dank voor de mooie tip.

Ik doe dit nu met VLC en op brute rekenkracht. Weet je ook een methode hoe je hardwarematige versnelling aan de praat kan krijgen? Danwel via GPU danwel via bijv Intel Quicksync?

Door Tweakers user Soldaatje, maandag 16 september 2013 11:49

Nee, helaas, daar heb ik geen idee van.
Ik heb wel ergens gelezen dat tvheadend op de achtergrond iets van VLC gebruikt of een implementatie daarvan, misschien valt er dan nog wat in te stellen in de broncode.
GPU zou natuurlijk ideaal zijn maar dat is aan de ontwikkelaars.
Ik ga er tenminste van uit dat de GPU niet gebruikt wordt (weet ik, aannames zijn slecht) maar op mijn oude quad-core van AMD ging het zonder problemen.
MPEG2 naar h264 zonder problemen, ok ik heb niet goed gekeken naar de belasting tijdens het gebruik, omdat het gewoon werkte.
HD-kanalen die al h264 zijn heb ik ook niet geprobeerd maar dat zou een stuk zwaarder moeten gaan, maar ook nog wel te doen denk ik.

Door Tweakers user TIGER79, maandag 16 september 2013 13:10

waarom heb je specifiek voor tvheadend gekozen tov een ffmpeg of eerder genoemde vlc ? Of bijv een gstreamer ?

Door Tweakers user Soldaatje, maandag 16 september 2013 13:45

Omdat ik dacht dat het het beste was.
Ik weet ook niet of je met die andere opties alles kunt bereiken wat je met tvheadend kan.
Tvheadend is in ieder geval een makkelijk pakket en werkt met een xbmc-addon, wat ik ook gebruik om tv te kijken.

Reageren is niet meer mogelijk