Rapportage Live HD Streaming Video
Versie 1.0 Datum 31 december 2009 SURFnet/Kennisnet Innovatieprogramma
Projectgegevens Project Projectjaar Programmalijn Onderdeel Activiteit Deliverable Toegangsrechten Auteur(s) Externe partij Opleverdatum Versie
: SURFnet/Kennisnet : 2008 : Hoge kwaliteit video en collaboratietools : Technologie Scouting – Live HD Streaming Video : : Rapportage Live HD Streaming Video : Intern : Henny Bekker, Maarten Kremers, Frans Ward : Jet-Stream : woensdag 31 december, 2008 : 1.0
Samenvatting De live-streaming video dienstverlening van SURFnet / Kennisnet is op dit moment niet geschikt voor live streaming in HD-formaat en het is bedoeling om dit in de toekomst te gaan faciliteren. Het doel van dit onderzoek is het bouwen van een PoC, om hiermee te onderzoeken wat mogelijkheden en onmogelijkheden zijn voor Live HD Streaming. Het resultaat van dit onderzoek is dat softwarematige encodering op een aantal problemen stuiten: Windows Media bleek niet bruiktbaar in combinatie met HDV input. De HDV input zelf leverde ook de nodige stabiliteitsproblemen op binnen Windows. Streamen onder Wirecast op de Mac OS gaat tot een bepaalde hoogte goed; 720p geeft geen problemen, maar bij 1080i treedt nog niet verklaarde packetloss op. Softwarematig HD encodering heeft mogelijkheden voor toekomstige dienstverlening, maar hiervoor op de problemen met de packetloss opgelost zijn. Streamen op basis van FireWire / HDV lijkt hier geen stabiele basis voor, HDV geeft nogal wat problemen onder voornamelijk Windows. De opkomst van HDMI en het betaalbaar zijn van capturekaarten hiervoor, maakt dat dit zeker nog nader onderzocht dient te worden. Zodra de oorzaak van de packetloss is opgelost, en aanvullend onderzoek naar HDMI gewenst resultaat oplevert, behoort Live HD streaming zeker tot mogelijkheden.
2
Inleiding De live-streaming video dienstverlening van SURFnet / Kennisnet is op dit moment niet geschikt voor live streaming in HD-formaat. De bedoeling is om dit in de toekomst te gaan faciliteren, waarbij in deze Technologie Scouting daarvoor een Proof of Concept wordt gebouwd. Bij succes kan in de toekomst de live streaming in HD-formaat mogelijk in de standaard dienstverlening worden opgenomen (De integratie hiervan valt buiten de scope van deze TS). Het doel van dit onderzoek is het bouwen van een PoC, om hiermee te onderzoeken wat mogelijkheden en onmogelijkheden zijn voor Live HD Streaming en daarvan te leren met het oog op toekomstige dienstverlening.
Opzet & Aanpak PoC Voor de opzet en de aanpak van de PoC heeft Jet-Stream aanbevolen om te gaan testen met het pakket WireCast. WireCast kan HDV-input aan en is beschikbaar onder Windows als onder Mac OS. Verder biedt WireCast de mogelijkheid om te encoderen naar Quicktime (onder Windows als onder Mac OS) en naar Windows Media (alleen onder Windows). Om te kunnen encoderen is krachtige hardware nodig, in de vorm van een PC met acht processoren (2x quadcore), voldoende geheugen, een goede videokaart en een FireWire ingang. Voor het beeldscherm is een monitor benodigd met tenminste een Full HD resolutie. Voor de Apple gelden dezelfde specificaties. Verder zijn nog benodigd een HD-camera met FireWire-uitgang (DV / HDV) en een tweetal clients (PC/Apple) om de streams te kunnen afspelen, die ook krachtig genoeg zijn en voorzien zijn van Full HD monitoren. Bij de opzet van de PoC is wel aangegeven dat het encoderen van Wirecast met HDV onder Windows veelal minder stabiel werkt dan onder het Mac OS. Verdere informatie rondom de HD streaming is opgenomen in het inventarisatierapport High Definition Streaming.
Testopstelling Voor het testen van de HD streaming is conform het advies voor de PoC gebruikt gemaakt van een software-matige encoderings oplossing. Hiervoor zijn een tweetal test opstellingen gerealiseerd. Bij de eerste testopstelling is gebruikt gemaakt van een PC voorzien van een tweetal quadcore processoren, voldoende geheugen (4 GB) en een goede videokaart en voorzien van het besturingsysteem Windows Vista. Als encoderingapplicaties zijn gebruikt: WireCast met inbegrip van de HDV plugin en Windows Media Encoder. Onder Windows kan Wirecast zowel Windows Media als Quicktime MPEG4 / H.264 encoderen, Windows Media encoder encodeert Windows Media. In de tweede testopstelling is gebruikt van een Apple Power Mac, voorzien van \een tweetal quadcore processoren, voldoende geheugen (8 GB) en goede videokaart en voorzien het Mac OS Leopard. Ook hier is gebruik gemaakt van de encoderingsapplicatie WireCast, eveneens met de HDV plugin. Onder het Mac OS kan Wirecast Quicktime H.264 encoderen. Verder is in beide testopstellingen gebruik gemaakt van een HD Camera met HDV over FireWire als input voor het live streamen.
3
Om de PoC te laten aansluiten bij een eventuele toekomstige integratie in de streaming video dienstverlening van SURFnet / Kennisnet, is als streamingserver (voor de distributie van de stream) gebruik gemaakt van de VDO-X applicatie. VDO-X zal als streamingserver binnen SURFnet worden ingezet en voorziet o.a. in het streamen van de codecs Windows Media en Quicktime MPEG4 / H.264 (Darwin). Daarnaast was voor Quicktime MPEG / H.264 ook nog een Quicktime streamingserver beschikbaar. Voor ontvangen van de streams waren er nog twee systemen beschikbaar (een PC en een Apple, beide met een HD-monitor) om de gestreamde content op te kunnen bekijken. Als clients zijn gebruikt: Windows Media player (W), Quicktime player (W&A) en VLC (W&A). Tot slot is er tijdens deze TS heeft Inside Technology een hardwarematige H.264 encoder: Haivision Hai1020 uitgeleend om te testen.
Testplan In het generieke testplan voor deze PoC is het van belang te testen met de twee encoderingscodecs (Windows Media en H.264), met de encoderingssoftware. Dit levert de volgende mogelijkheden op:
Windows Media met Wirecast (PC) Windows Media met Windows Media Encoder (PC) Quicktime onder Wircecast (PC) Quicktime onder Wircecast (Mac OS)
Verder is het van belang om te encoderen op de meerdere resoluties, waarbij de twee meest relevante zijn 1280 x 720 (HD ready) en 1920 x 1080 (Full HD). Dit bij meerdere bandbreedtes. Verder is de relevant voor de PoC is het testen over een langere periode (bijv. 2uur) om te kijken over geen bufferproblemen e.d. zich voordoen. Het laatste onderdeel is het bekijken hoe de streamers en de client-pc’s zich gedragen. Verder is in de bijlage HD Streaming Testplan nog nadere tips en aanbevelingen voor het testen van de PoC en aanwijzing voor het gebruik van de streamingservers.
4
Resultaten: Encoding met Hardware encoder De Haivision Hai1020 is een hardwarematige encoder. Input voor deze test was een RGB componentvideo-stream, uit dezelfde HD camera als bij de softwarematige oplossing. De Haivision encodeert op MPEG4 op een TCP of UDP Transport Stream of via Quicktime. De maximale bitrate van het apparaat is 10-Mbps. Dit oogt laag, maar het apparaat geeft des al niet te min goed beeld. De latency is opvallend laag (orde grote van tienden van seconden). Aldus de leverancier wordt de encoder gepositioneerd voor telepresents doeleinde: waarbij lage latency een belangrijke randvoorwaarde is. Het apparaat voorziet in de mogelijkheid om unicast en multicast uit te zenden. Unicast gaf weinig problemen en was op een PC met hierop de opensource VLC speler goed te ontvangen. Multicast gaf meer problemen: met VLC werd weliswaar de stream ontvangen, maar bleef het beeld uit. Met de dedicated player van Haivision (Haiplayer) bleek het wel mogelijk te zijn om de multicast stream te bekijken. Verder is er nog de mogelijkheid om de encoder te koppelen aan Wowza-server (die onder andere aanwezig is in de streaming media service van SURFnet). Wegens tijd is dit niet getest, maar er is wel een beschrijving aanwezig hoe deze te koppelen (Bijlage). De Haivsion geeft een goed resultaat, maar het geteste apparaat kan maar 1 stream encoderen en prijstechnisch gezien zijn de softwaregebaseerde oplossingen goedkoper en flexibeler.
5
Resultaten: Encoding onder Windows Windows Media Encoder – Windows Media Encoding Uit de testen blijkt dat Windows Media met encoderen met Windows Media Encoder (WME) op basis van een FireWire HDV stream niet lukt. Wanneer een camera zijn stream in het DVformaat doorgeeft aan de applicatie, dan wordt deze herkend en kan deze worden geencodeerd. Wanneer de camera zijn stream echter in de HDV doorgeeft, dan ziet de applicatie deze niet. Een poging om te gaan encoderen in HDV geeft vervolgens een error-melding (0xC00D1B70). Met een zoektocht via een aantal websites, lijkt de oorzaak te liggen in het feit dan WME niet direct HDV streams kan verwerken. Het is wel mogelijk om HDV streams via een andere tool te capturen naar een bestand om vervolgens dit bestand te encoderen, maar.direct live on-the-fly streamen lijkt WME niet te kunnen..
Wirecast – Windows Media encoding Windows Media encoderen onder Wirecast gaf hetzelfde negatieve resultaat als onder WME. De applicatie gebruikt dezelfde libraries als WME, waardoor live HDV signaal encoderen niet tot mogelijkheden behoort. Wirecast herkent weliswaar de HDV stream wel, maar zodra men wil gaan broadcasten geeft de applicatie een error.
6
Wirecast – Quicktime encoding Onder Windows blijkt Wirecast in combinatie met een HDV stream niet altijd even stabiel: De HDV bron hield na een willekeurige tijd mee op: willekeurig variërend van een aantal minuten tot paar uur. Verder blijkt Wirecast zelf ook nog wel eens te crashen. Binnen de Wirecast vallen aantal parameters in te stellen (Figuur 1). Voor deze test is voornamelijk getest met de genoemde resoluties (1280x720 & 1920x1080), in een variërende set van de overige parameters. Dit gaf echter een mager resultaat, met voor de kijker frameloss en blokkerig beeld tot gevolg. Encoderen op hoge kwaliteit gaf niet de gewenste resultaten, omdat Wirecast onder Windows met een lage data-rate encodeert, dit ondanks dat processors en de netwerkkaart niet volledig belastwaren. Verder is gekeken om de maximum data-rate op bepaalde niveau vast te zetten, maar daar blijft de encoder vervolgens ver onder, wat vervolgens een voor de kijker te lage beeldkwaliteit oplevert.
Figuur 1: Instellingen Wirecast
7
Resultaten: Encoding onder Mac OS Wirecast op het Mac OS geeft betere resultaten dan op Windows. De applicatie draait duidelijk stabieler en dat geldt ook voor de HDV stream. Wel blijkt dat het encoderen op hoge kwaliteit en hoge resolutie (1080) tot een behoorlijke packetloss lijdt, ondanks dat de processor en netwerk niet volledig belast zijn. Dit heeft frameloss en blokkerig beeld tot gevolg. In het onderzoek naar de oorzaak zijn de twee Apples (encoder en viewer) uiteindelijk met een crosskabel aan elkaar gehangen, om overige netwerkcomponenten te elimineren. Ook met een crosskabel treedt het probleem nog steeds op, zowel onder VLC als onder Quicktime. De onderstaande configuraties gaven de volgende resultaten: Setting 1 Encoder Codec Resolutie: Quality setting: CPU: Output naar netwerk:
H.264 1920x1080 Best 55% Gemiddeld 8 a 9 MBps
Input van netwerk Packetloss
2 MBps >50%
Viewer
Setting 2 Encoder Codec Resolutie: Quality setting: CPU: Output naar netwerk:
H.264 1920x1080 High 45% Gemiddeld 2 MBps
Input van netwerk: Packetloss: Buffer:
2 MBps 5% Gemiddeld 1 seconde
Viewer
8
Setting 3 Encoder Codec Resolutie: Quality setting: CPU: Output naar netwerk:
H.264 1280x720 High 30% Gemiddeld 1,2 MBps
Input van netwerk: Packetloss: Buffer:
1,2 MBps < 1% Gemiddeld 2,5 seconde
Viewer
Het beeld uit setting 3 is acceptabel. Het beeld uit setting 2 is net niet acceptabel. De packetloss gaat nog net,maar de ontvangst buffer is mede daardoor dermate klein dat een grote beeldbeweging of een hickup in het netwerk tot verstoringen leidt. Het beeld uit setting 1, op de hoogste kwaliteit, levert gelet op de hoge packetloss tot weinig resultaat. Tot slot bleek nog dat in Wirecast de MPEG4 codec, in tegenstellng tot de H264 codec, tijdens het encoderen maar 1 processor gebruik, waardoor HD Streaming met die betreffende codec niet mogelijk was.
9
Conclusie Van de vier mogelijkheden om softwarematig te encoderen, bleek alleen Wirecast / Quicktime onder Mac OS een redelijk resultaat te geven. Windows Media, zowel onder WME als onder Wirecast, bleek niet mogelijk te zijn. Wirecast / Quicktime onder Windows leverde niet het verwachte kwaliteit op. Encodering met Wirecast / Quicktime onder Mac OS leverde een redelijk acceptabel resultaat op 720. De gewenste 1080i bleek niet haalbaar te zijn door een nog niet te verklaren en nader te onderzoeken packet-loss. Toch behoort de softwarematige encodering tot de mogelijkheden om in de streaming video dienstverlening op te nemen, met de kanttekening dat de problemen rondom de packetloss nog nader onderzocht dienen te wordenDe HAIvision bleek op dit punt, ondanks de wat lage bitrate een beter resultaat te geven. Verder is de aanbeveling om nog te onderzoek te doen naar HDMI capture kaarten: HDV bleek tijdens dit onderzoek bepaald geen stabiele factor te zijn en daarbij komt dat ook niet alle applicaties die wel DV accepteren ook HDV accepteren. Verder gelet op het feit de nieuwe generatie (HD)camcorders steeds minder vaak een FireWire / HDV aansluiting hebben, maar wel een HDMI uitgang hebben, en dat deze capturekaarten betaalbaar zijn, maakt dat dit zeker nog nader onderzocht dient te worden.
10
Bijlage: Gebruikte software Windows
Encoding - Windows Media Encoder 9 http://www.microsoft.com/windows/windowsmedia/nl/9series/encoder/default.aspx -
Wirecast 3.0.5 http://dynamic.telestream.net/downloads/download-wirecast.htm
Viewer - Windows Media Player 11 (vista) -
Videolan / VLC versie 0.9.5 & 0.9.6 http://www.videolan.org/vlc/download-windows.html
-
Quicktimeplayer 7.5.5 http://www.apple.com/nl/quicktime/download/
-
Realplayer 11 http://netherlands.real.com/player/select/
-
HAIplayer 2.0.3
Mac OS
Encoding - Wirecast 3.0.5 http://dynamic.telestream.net/downloads/download-wirecast.htm
Viewer - Videolan / VLC versie 0.9.5 & 0.9.6 http://www.videolan.org/vlc/download-macosx.html -
Quicktimeplayer 7.5.5 http://www.apple.com/nl/quicktime/download/
11
Voor deze publicatie geldt de Creative Commons Licentie “Attribution-Noncommercial-Share Alike 3.0 Netherlands”. Meer informatie over deze licentie is te vinden op http://creativecommons.org/licenses/by-nc-sa/3.0/nl/
[email protected]
12