VOD Online

Wednesday, 6 July 2011

Octopus

Octopus Print
viadeos - produit : octopus

OCTOPUS, the main product of Vianeos offer, is a modular, scalable, html> flexible, and universal middleware IPTV.


  • Modular :
    because it is build like a lego software by assembling ³building blocks² of content (TV, VOD, PVR, EPG, Portal...) to get generic or trend packages.
  • Flexible :
    because of his adaptation to any business environment, general public and all types of applications: Telecom operators, hotels, digital signage, health care, school and public operators... His great ability to customize allows youto control the entire TV .
  • Universal :
    because Octopus fits to any IP terminal, any IP Set-top-box with a browser is available, but also thin PC’s, Mac’s, PC’s and soon mobile terminals.

Hosted on an entry level and inexpensive server, it can use a few dozen or several millions customers. Simple installation, management and maintenace.

Octopus and its modules serve now several millions of users.

It is proposed as :

  • "Light", First level to deploy IPTV quckly to your project

Then add a work extension with all the available modules:

  • "Host" for Hospitality
  • "Corp" for Corporate
  • "Med" for Health
  • "Edu" for Education

...In function with the applications and content that you will need : TV, Portal, VOD, PVR, etc...

Generic products addressed to all markets segments :

octoliveoctosign

Professional product dedicated to industries :

octoroom octoffice
addressed to Hospitality and health addressed to Corporate and education

It is also proposed bespoke module by module, being easily modifiable we can quickly and easily integrate the changes you want !

Delivered standard, on server, any Hardware options are available:

  • Discrete box up to 25 users
  • Industrial server up to 100 users
  • Rack 1U,

Optionally, we propose virtualized VoD & PMS extensions allowing several features on the same server.

Less hardware, less power consumptions: Octopus is Green!!

Do not hesitate to consult us for an online demo and more information’s !

Vianeos IPTV made simple!

IPTV Complex, a complete IPTV solution for medium and large deployments

IPTV Complex, a complete IPTV solution for medium and large deployments

The NetUP IPTV Complex is a set of IPTV software and hardware that forms a scalable IPTV solution for medium and large IPTV installations. All elements of IPTV Complex are compatible with each other that means that no additional integration is required. That's why IPTV Complex allows setting up an IPTV service easily, fast, and without extra expenses on system integration.

IPTV Complex: a diagram of an IPTV network

IPTV Combine 4x Hotel

IPTV Combine 4x Hotel

A complete IPTV solution for hotels in one box!

    IPTV Combine 4x Hotel is a special configuration of IPTV Combine 4x intended for the hospitality sector. It is a perfect solution for hotels, cruise ships, hospitals, etc. The device includes:
  • IPTV middleware/billing
  • DVB to IP gateway
  • VoD/nVoD server
  • interface to hotel property management systems (hotel PMS)

Features overview

    IPTV Combine 4x Hotel supports:
  • welcome message on guest check-in
  • hotel information page
  • auto posting TV services from the IPTV system to the PMS system
  • hotel bill view
  • express checkout
  • messages from reception
  • room status change via TV (dirty/clean) for the housekeeping service

Supported hotel PMS

    MICROS-Fidelio hotel property management systems based on FIAS protocol:
  • Fidelio Suite 6
  • Fidelio Suite 7
  • Fidelio Suite 8
  • OPERA
  • Interface to any other hotel PMS can be implemented on customer's request.

IPTV Combine 4x - all-in-one IPTV box. Front view
NetUP's IPTV Combine 4x - all-in-one IPTV box. Front view

Screenshots

The following images were captured from AmiNET 130 in HD 720 graphics mode and illustrate some of the features mentioned above.

IPTV middleware: welcome message
Welcome message

IPTV middleware: hotel info page
Hotel information page

IPTV middleware: hotel bill view
Hotel bill view & express checkout

IPTV middleware: room status change for housekeeping
Room status change for housekeeping

IPTV Combine 4x, a complete IPTV solution in one box: VoD server, DVB to IP gateway, middleware and billing

IPTV Combine 4x is an all-in-one IPTV server designed specially for small IPTV projects. It is a perfect solution for small telcos, educational institutions, IPTV labs and show rooms. The device includes IPTV middleware with billing that can handle up to 500 IP set-top boxes; DVB to IP gateway with 4 DVB-S/DVB-S2 inputs and 4 CI slots that allow to receive and decode TV channels from 4 transponders; a VoD server that can handle up to 50 concurrent VoD streams and with 1 TB of HDD space for video content storage - all installed, integrated, and configured to launch an IPTV service easily and fast.

Interface to hotel property management systems allows using IPTV Combine 4x in the hospitality sector: hotels, cruise ships, hospitals, etc. Read more...

IPTV Combine 4x - all-in-one IPTV box. Front view
NetUP's IPTV Combine 4x - all-in-one IPTV box. Front view

To understand clearly the IPTV technology we recommend you to read the "Introduction into IPTV" article that describes all the necessary IPTV components and the technology advantages.

IPTV Combine 4x in an IP network
IPTV Combine 4x in an IP network

Key Advantages

All systems integrated. It is no more required to lose money and time on system integration because all systems in IPTV Combine 4x are developed by one company and are compatible with each other.

High density. One device can receive and decode 4 satellite transponders that corresponds to approximately 50 TV channels. The compactness of IPTV Combine 4x allows to save space on installation and to reduce shipping costs. The former is very important when installing IP TV in confined environments, e.g. on yachts.

Fast User's Interface. The user's interface shown on the TV screen is a native application developed in C++. It runs right in the IP set-top box, that means that the graphics is fast as no delays are caused by the network or highly loaded middleware server. In contrast to JavaScript/HTML middleware systems provided by most vendors, our native application approach for the IPTV middleware system allows to achieve maximum performance of the user's interface. There is no heavy Web browser anymore processing graphics slowly. No more delays and pauses when browsing the menus on your TV - all works as fast as possible. This is especially important in case of high definition (HD) mode.

Support of various IP set-top box models in the same network. IP set-top boxes of different models can be used within the same network. Supported hardware platforms are: STM, Broadcom, TI Davinci, Sigma Designs, and Power PC. IP set-top boxes that have been successfully used in real projects include Amino's AmiNET 110, 125, 130, 130M; Telergy's T-502, D-Link's DIB-120 and others.

Customizable themes. The user's interface theme can be customized by the IPTV service provider by editing style sheets. It is also possible to translate the theme to any language. Multiple interface languages are supported and can be selected by the end user.

IPTV Combine 4x, all-in-one IPTV box. Rear view
NetUP's IPTV Combine 4x - rear view

IPTV Combine 4x Specification

    Services:
  • VoD + nVoD server (Video on Demand + near Video on Demand)
  • DVB to IP Gateway: 4 DVB-S/DVB-S2 inputs + 4 CI solts
  • Middleware, interactive user's interface for IP set-top boxes
  • Electronic Program Guide (EPG)
  • IP STB firmware update server, DHCP, DNS, IGMP querier, IP router
  • optional: interface to hotel property management systems
    Physical & Power
  • standard rack-mount case for 19" telecom rack
  • height: 1U
  • dimensions (WHD): 430 x 44 x 411 mm
  • weight: 11.5 kg
  • power supply: 90 ~ 264 Volts, 47 ~ 63 Hz
    Disk Drives
  • flash card for reliable storage of OS and configuration files
  • 1 TB HDD for multimedia content and database (corresponds to over 400 full-length movies in MPEG-2 4 Mb/s
    Inputs/Outputs
  • 6 x Gigabit Ethernet 10/100/1000 Mb/s
  • 4 x CI solts
  • 4 x DVB-S/DVB-S2
  • or 4 sx DVB-T/DVB-C
  • or 4 x inputs for modulated TV signal (RF to IP) with real-time encoding into MPEG-2
  • or 4 x inputs for analog video signal (A/V, RCA) with real-time encoding into MPEG-2
    Control & Administration
  • front panel LCD for initial configuration and system summary information
  • administration Web interface
  • administration Java interface
  • ssh console, Linux 2.6.x OS
  • RS-232 console
    Performance
  • over 50 simultaneous VoD streams (4 Mb/s per stream). Total VoD bandwidth - 200 Mb/s
  • satellite TV channels can be received from 4 different transponders at a total bandwidth of 240 Mb/s
    Media Content Format
  • VoD files formats: MPEG-2, H.264 (MPEG-4 AVC) transport stream
  • recommended bitrate: 4 Mb/s and more
  • definition: SD, HD (720x576 or higher)

DVB to IP Gateway 4x


The NetUP DVB to IP gateway 4x is a complete IPTV streaming solution. It can receive live TV channels directly from a satellite dish (DVB-S, DVB-S2), antenna (DVB-T) or cable (DVB-C), decode them using conditional access modules (CAM) and send them into an IP network using multicast (IGMP snooping support by Ethernet switches is required). One DVB-IP gateway 4x can receive and stream TV channels from 4 DVB transponders or multiplexes that corresponds to up to 50 TV channels. It is also possible to encode four analog TV channels (RF to IP or A/V to IP). The IPTV streaming software used in DVB to IP gateway 4x allows flexible configuration and assures high performance and reliability.

DVB to IP gateway 4x - rear view
NetUP's DVB to IP gateway 4x, an IPTV streaming server. Rear view

Product Specification

    Physical & Power
  • standard rack-mount case for 19" telecom rack
  • height: 1U
  • dimensions (WHD): 430 x 44 x 411 mm
  • weight: 11.5 kg
  • power supply: 90 ~ 264 Volts, 47 ~ 63 Hz
    Inputs/Outputs
  • 6 x Gigabit Ethernet 10/100/1000 Mb/s
  • 4 x CI solts
  • 4 x DVB-S/DVB-S2
  • or 4x DVB-T/DVB-C
  • or 4 x inputs for modulated TV signal (RF to IP) with real-time encoding into MPEG-2
  • or 4 x inputs for analog video signal (A/V, RCA) with real-time encoding into MPEG-2
    Control & Administration
  • front panel LCD for initial configuration and system summary information
  • administration Web interface
  • RS-232 console
    Performance
  • 4 transponders or multiplexes at a total bandwidth of 240 Mb/s

NetUP DVB to IP gateway 4x test report in TELE-satellite, November 2010

Saturday, 2 July 2011

IPTV Netup

IPTV Software and Hardware by NetUP

We offer a wide range of IPTV equipment: IPTV middleware, VoD server, DVB to IP gateway, IP CAS, billing software, etc. All our products can be connected in a cluster architecture to form a scalable IPTV solution. We can offer a complete IPTV solution as well as a separate IPTV server. Also, we are running several open source IPTV software projects.

To understand clearly the IPTV technology we recommend you to read the "Introduction into IPTV" article that describes all the necessary IPTV components and the technology advantages.

IPTV Complex, a scalable IPTV solution

More details about IPTV Complex...

IPTV Combine 4x, all-in-one IPTV box

The NetUP IPTV Combine 4x is a complete IPTV solution in one box for small deployments - it includes IPTV Middleware with billing, VoD server, DVB to IP gateway and other systems required to provide IP TV. IPTV Combine 4x is perfect for small IPTV installations like hotels, hospitals, cruise ships, business centers, educational institutions, etc.

More details about IPTV Combine 4x...

IPTV Combine 4x - front view

Open source IPTV software

We develop open source software for IPTV: IPTVProbe, a software for monitoring quality of IP video streams, and Multifiles, a solution for automatic remote upgrade of firmware in client's IP set-top boxes.

RTMP Protocol

====== RTMP Protocol [DRAFT] ======

{{tag>documentation rtmp}}

===== Introduction =====

RTMP is a protocol used by the Flash Player to deliver real time objects, video, and audio to clients using a binary TCP connection or polling HTTP tunnel.

The protocol is a container for data packets which may be [[:documentation:amf|AMF]] or raw audio/video data like found in the [[:flv]].

A single connection is capable of multiplexing many net streams using different channels. Within these channels packets are split up into fixed size body chunks.

RTMPT basically is a HTTP wrapper around the RTMP protocol that is sent using POST requests from the client to the server. Because of the non-persistent nature of HTTP connections, RTMPT requires the clients to poll for updates periodically in order to get notified about events that are generated by the server or other clients.

[[http://www.joachim-bauch.de/tutorials/red5/SPEC-RTMPT.html|This]] document written by Joachim Bauch describes the RTMPT tunneling protocol as implemented by the Red5 Open Source Flash Server that hopefully helps other people to write software that makes use of RTMPT.

===== Connection =====

Sample ActionScript for connecting and playing a stream:


var videoInstance:Video = your_video_instance;
var nc:NetConnection = new NetConnection();
var connected:Boolean = nc.connect("rtmp://localhost/myapp");
var ns:NetStream = new NetStream(nc);
videoInstance.attachVideo(ns);
ns.play("flvName");


Default port is 1935


===== Handshake =====

Client -> Server : Sends Handshake Request. This is not a protocol packet but a single byte (0x03) followed by 1536 bytes. This content does not seem to be vital for the protocol, but is not random either. See ((yes it seems random, but there is a pattern in there, I dont think there is any data though. If you order the bytes in an editor (wrapped at about 20 bytes) you see cols going down with bytes going in sequence, between these cols seems to be random content. I spent a night or two head scratching trying to work out, but in the end gave up. Five bucks to the person who finds ETs message home hidden in the handshake. Oh I did find a tiny amount of data right at the start. There is a counter which goes up, it seemed to be the clients uptime (time since system started)) ((It was suggested on [[http://tech.slashdot.org/comments.pl?sid=1101223&cid=26567551|Slashdot]] that this is most likely bandwidth test. Those bytes are constructed so they wouldn't be compressed much in transit, giving more accurate result. The uptime counter also hints at measuring bandwidth with this data block.))

Server -> Client : Sends a Handshake Response. This is not a RTMP packet but a single byte (0x03) followed by two 1536 byte chunks (so a total of 3072 raw bytes). The second chunk of bytes is the original client request bytes sent in handshake request. The first chunk can be anything. Use null bytes it doesnt seem to matter.

Client->Server: Sends 1536 raw bytes which are the second 1536 chunk of server generated handshake.

At this time, handshake is done and further packets are RTMP ones.

Client -> Server : send the Connect RTMP packet.

Server -> Client : Server responds

...and so on...





===== RTMP Datatypes =====

| 0x01 | Chunk Size | changes the chunk size for packets |
| 0x02 | Unknown | anyone know this one? |
| 0x03 | Bytes Read | send every x bytes read by both sides |
| 0x04 | Ping | ping is a stream control message, has subtypes |
| 0x05 | Server BW | the servers downstream bw |
| 0x06 | Client BW | the clients upstream bw |
| 0x07 | Unknown | anyone know this one? |
| 0x08 | Audio Data | packet containing audio |
| 0x09 | Video Data | packet containing video data |
| 0x0A - 0xE | Unknown | anyone know? |
| 0x0F | Flex Stream | Stream with variable length |
| 0x10 | Flex Shared Object | Shared object with variable length |
| 0x11 | Flex Message | Shared message with variable length |
| 0x12 | Notify | an invoke which does not expect a reply |
| 0x13 | Shared Object | has subtypes |
| 0x14 | Invoke | like remoting call, used for stream actions too. |
| 0x16 | [FMS3] Set of one or more FLV tags, as documented on the [[:flv]] page. Each tag will have an 11 byte header - [1 byte Type][3 bytes Size][3 bytes Timestamp][1 byte timestamp extention][3 bytes streamID], followed by the body, followed by a 4 byte footer containing the size of the body. | FLV data |

FIXME luke to add structure for rtmp types

===== Shared Object DataTypes =====


| 0x01 | Connect |
| 0x02 | Disconnect |
| 0x03 | Set Attribute |
| 0x04 | Update Data |
| 0x05 | Update Attribute |
| 0x06 | Send Message |
| 0x07 | Status |
| 0x08 | Clear Data |
| 0x09 | Delete Data |
| 0x0A | Delete Attribute |
| 0x0B | Initial Data |

FIXME joachim can you add details and structure for diff types of shared object








===== RTMP Packet Structure =====

FIXME (documentation started, not yet complete)

RTMP Packets consist of a fixed-length header and a variable length body that has a default of 128 bytes. The header can come in one of four sizes: 12, 8, 4, or 1 byte(s).

The two most significant bits of the first byte of the packet (which also counts as the first byte of the header) determine the length of the header. They can be extracted by ANDing the byte with the mask 0xC0. The possible header lengths are specified in the table below:

| Bits | Header Length |
| 00 | 12 bytes |
| 01 | 8 bytes |
| 10 | 4 bytes |
| 11 | 1 byte |

The header excludes information in the shorter version and implies that the information that is excluded is the same as the last time that information was explicitly included in the header.

In a full 12 byte header is broken down as follows:

The first byte has the header size and the object id. The first two bits are the size of the header and the following 6 bits are the object id. This limits a RTMP packets to a maximum of 64 objects in one packet. This byte is always sent no matter the size of the header.

The next three bytes are the time stamp. This is a big-endian integer and it is sent whenever the header size is 4 bytes or larger.

The next three bytes are the length of the object body. This is an integer and is big-endian. The length of the object is the size of the AMF in the RTMP packet without the RTMP headers, so you need to remove any RTMP headers before this number matches properly. These bytes are sent whenever the header size is 8 or more.

The next single byte is the content type. The content types are listed in another section this page and are only included when the header is 8 bytes or longer.

The final 4 bytes of the header is a stream id. This is a 32 bit integer that is little-endian encoded. These bytes are only included when the header is a full 12 bytes. (As mentioned in Mick's Breakdown of RTMP linked below, it is possible that the stream id defines which NetStream/NetConnection object is the source or target of the message)

As mentioned above, in cases where the header is not a full 12 bytes any of the missing fields are assumed to be unchanged from the last header sent with this object ID. For example, if a four-byte header is sent without a length field, and the last object that was sent for the current stream has terminated (ie, there are zero bytes remaining in the last object's transmission), then it should be assumed that the length of the object that follows will be the same as the length of the object that was last transmitted. So if a packet is sent whose payload is 32 bytes, and then immediately afterwards another packet is transmitted with the same object ID, but without a length field, it is assumed that the length of this next packet is also 32 bytes.

Also, checkout the document below. Its mostly accurate, although where it talks about AMF its really RTMP. AMF is used in RTMP, but its not covered in the following document.

Mick's Breakdown of RTMP: [[http://osflash.org/_media/rtmp_spec.jpg|JPG]] / [[http://www.acmewebworks.com/Downloads/openCS/TheAMF.pdf|PDF]]




===== Streaming =====

FIXME need more infos

For basic publish cycle this is what happens :

Client->Server : sends a CreateStream request //( is it a single RTMP packet ?)//

The createstream request is a single AFM0 function call (remote method invocation) whose high-level equivalent function signature would be "createstream(double ClientStream, NULL)" The ClientStream variable starts at 1 and is incremented by one for every stream that is created in a connection. It is NOT used by the server to route data for multimedia streams.

Server->Client : sends a response with a streamIndex number

The response the server sends back is also an AMF0 call, this time targeted to the client-side function "_result(double ClientStream, NULL, double ServerStream)" where the ClientStream value is the same one provided in the request to create the stream supplied by the client, above, and the ServerStream value is generated by the server to identify the stream over which data will be routed. Most servers that work with Flash clients appear to simply increment a value starting from one, just like the client does, but the ClientStream does not have to match the ServerStream.

Client->Server : does a publish //(what does it means in this context ?)//

Yet another AMF0 call, this time to a server method "publish(double 0, NULL, "resource_name", "options")" The first variable has always been zero in the sessions I have captured, but I have no idea what it is intended to reflect. Ditto for the NULL in the second parameter position. The resource_name parameter is a string that identifies the resource to which the stream is to be attached. For FMS-like servers, this appears to simply be a file name in in a directory on the disk, although for real-time video stream reflection it is probably irrelevant as long as the server can associate it between connections.

Client->Server : send the audio video packets (the packets are sent from the source as indicated on the streamIndex via the same channel as the publish request)

Now, this is what's really confusing about this god-awful RTMP protocol. The authors of the protocol were either intentionally attempting to obfuscate it to prevent compatibility-related reverse engineering with packet sniffers (which is all that is legal), or they were simply using some sort of higher-level representation for the protocol that resulted in very inconsistent low-level data going out the wire (much more likely). The way that AV data is associated with a stream once a publish() command has succeeded, for example, is by virtue of an integer field in the RTMP packet header. That's where the hilarity begins.

The server tells the client what stream to use by sending a double-precision floating-point value in its _result() call to the client, as described above. Fine so far. The client, for live streams at least, then sends an RTMP-level set_buffer(S, T) command back to the server, where I'm using 'S' to represent the stream being targeted and 'T' as the buffering time desired. Both of these parameters are sent as 32-bit big-endian integers.

Finally, the server replies with an RTMP-level reset(S) command, also using a big-endian integer to identify the stream, and an AMF0-formatted status message of the following form:

[C:-:S](RMI) onStatus(0, NULL, struct {
"level" => "status",
"code" => "NetStream.Publish.Start",
"description" => " is now published.",
"cliendid" =>
});

where I'm using the shorthand [C:T:S] to indicate the channel, time-index and stream values in the RTMP header, respectively. Here the stream identifier is sent in the header instead of as a call parameter (this is also how actual raw AV data is tagged). Guess what: that stream field in the header is a LITTLE-ENDIAN 32-bit integer.

So, the RTMP protocol uses 64-bit floats, 32-bit little-endian integers, and 32-bit big-endian integers to identify the exact same stream in three different contexts, in back-to-back messages sent between client and server.

If anyone is still interested, I may write up an annotated packet trace and post a PDF of it here. I wound up going back to the protocol analyzer because it turned out to be easier than trying to read the RED5 source :-) I'm just not a Java affictionado--actually, I'm writing up a real-time, media-only reflector in Erlang for an application that I cannot make public, but I am willing and able to provide any information I glean about RTMP back to the community (although it may not be much, in contrast to what RED5 appears to be capable of doing, which is why it was easier to analyze the wire rather than read the source). --ovrlod3

The PDF would be great to help on my Erlang version of this -SimpleEnigma

//(this needs more detailed description I think, maybe adding an introduction explaining in general how streams are identified and that RTMP allow stream interleaving over the same connection)//

===== Useful Links =====

- [[http://wiki.gnashdev.org/wiki/index.php/RTMP|RTMP on Gnash dev wiki]]