Internet DRAFT - draft-ahlgren-icnrg-netinf-live-video
draft-ahlgren-icnrg-netinf-live-video
ICN Research Group B. Ahlgren
Internet-Draft SICS
Intended status: Experimental B. Ohlman
Expires: July 2, 2016 A. Malik
Ericsson
December 30, 2015
NetInf Live Video Specification
draft-ahlgren-icnrg-netinf-live-video-00
Abstract
This document specifies how the NetInf information-centric network
service can be used for transport of live video streaming. To
illustrate this it describes a prototype system that was developed to
be used at "events with large crowds", e.g., sports events. The
specification defines how the used video format is mapped to NetInf
named data objects (NDOs). It also describe how NetInf messages are
used to transfer the NDOs.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 2, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Ahlgren, et al. Expires July 2, 2016 [Page 1]
Internet-Draft NetInf Live Video December 2015
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. System Architecture . . . . . . . . . . . . . . . . . . . . . 2
3. Video Format . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Video Transport using NetInf Protocol . . . . . . . . . . . . 4
4.1. Video chunk NDOs . . . . . . . . . . . . . . . . . . . . 5
4.2. Publishing video chunk NDOs . . . . . . . . . . . . . . . 5
4.3. Receiving video chunk NDOs . . . . . . . . . . . . . . . 6
5. Video Manifest . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. Video stream header NDOs . . . . . . . . . . . . . . . . 6
5.2. Publishing video header NDOs . . . . . . . . . . . . . . 7
5.3. Browsing available video streams . . . . . . . . . . . . 7
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.1. Normative References . . . . . . . . . . . . . . . . . . 8
8.2. Informative References . . . . . . . . . . . . . . . . . 8
8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction
This specification documents how a prototype NetInf-based
[Dannewitz2013] live video streaming system makes use of the NetInf
information-centric network (ICN) service. The prototype has been
field-tested and demonstrated at numerous occasions [Malik2015a]
[Malik2015b]. The Android client software that is part of the
prototype system has been made available on Sourceforge [1] as open
source with an Apache 2.0 license.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. System Architecture
Figure 1 shows the architecture of the NetInf live video streaming
system. Users can record and publish video streams at a live event
and at the same time other users can watch the streams live. The
architecture also facilitates streaming to a device anywhere on the
internet so that users not present at the venue can also publish or
play streams.
Ahlgren, et al. Expires July 2, 2016 [Page 2]
Internet-Draft NetInf Live Video December 2015
+---------------------------------------------------------------+
| NetInf Core Network |
| +--------+ |
| | NetInf | +-----+ |
| +-------+ Router +-------+ | NRS | |
| | +--------+ | | | |
| | | +-----+ |
| +---+----+ +----+---+ |
| | NetInf | | NetInf | |
| | Router | | Router +---------+ |
| +---+----+ +--------+ | |
| | | |
+---------------------------------------------------------------+
| |
| +--------------------------+
XXXXXXXXXXX+XXXXXXXXXXXXXXXXXXXXXX | NetInf | |
X X | Access +----+---+ |
X Internet X | Network| NetInf | |
X X | at | Router | |
XXXXXXX+XXXXXXXXXXXXXXXX+XXXXXXXXX | event ++------++ |
| | | venue | | |
| | | | | |
XXXXXXX+XXXXXXX XXXXXXXXXXXXXXXXX | +------+-+ +-+------+ |
X WiFi Access X X Mobile Access X | | NetInf | | NetInf | |
XXXXXXX+XXXXXXX XXXX+XXXXXX+XXXXX | | Router | | Router | |
| | | | +----+---+ +----+---+ |
| | | | | | |
| | | | XXXXX+XXXXXXXXXXX+XXX |
+-+-+ +-+-+ | | X WiFi Access X |
| P | | P | | | XXXXXXX+XXXXXX+XXXX+X |
+---+ +---+ | | | | | |
| | +---+ +-+-+ +-+-+ ++--+ |
+---------+ R | | P | | R | | P | |
R: Recording client | +---+ +---+ +---+ +---+ |
P: Playing client | |
NRS: Name Resolution Service +--------------------------+
Figure 1: System architecture
Recording and playing clients at the event venue can connect to the
system using local WiFi or mobile internet (3G/4G). Before a client
can start publishing or playing, it first connects to a NetInf
router. Consequently this router acts as the first hop NetInf node
for the client. Clients on local WiFi at the event venue connect to
a NetInf router in the local access network. Clients on the internet
connect to a NetInf router in the NetInf core network.
Ahlgren, et al. Expires July 2, 2016 [Page 3]
Internet-Draft NetInf Live Video December 2015
The NetInf core network hosts a Name Resolution Service (NRS). This
service is responsible for resolving object names into locators. It
also provides search function for the registered Named Data Objects
(NDOs).
ICN employs ubiquitous caching. Therefore every NetInf router in the
architecture is coupled with a local cache. These routers cache NDOs
on-path and serve them to corresponding GET requests when there is a
cache hit. This ensures that clients are served data from the local
network (if the data is cached) and that the edge links (like the one
between the NetInf access network and the NetInf core network as seen
in Figure 1) are not choked with traffic.
3. Video Format
The transport of video chunks using NetInf described in this
specification can be used for video with any type of encoding. As an
example we describe the mpeg4/H.264 encoding used at the above
referenced events.
When transporting video over an best effort network, such an ICN
network, there are two main goals: to minimize the delay and to avoid
rebuffering events. Unfortunately the means to achieve these goals
are conflicting. Small buffers are needed to minimize delay, large
buffers are needed to minimize the risk of rebuffering.
At the events referenced above the video generated by the recording
device were encoded using H.264/AVC video format and had the mime
type "video/avc". The video is split into chunks so that each chunk
fits into an NDO. Chunking is done at I-frames in order to ensure
that video chunks are independent of each other. The H.264 encoded
chunks are packaged into MP4 containers. The frame rate and I-frame
intervals are configurable. The parameters can be tweaked to achieve
different tradeoffs between the playback latency and the NDO header
overhead. The I-frame interval controls the size of the generated
video chunks. A typical setting of 30 fps and 2 seconds,
respectively, was used with the largest available 16:9 resolution
less than 864x480, resulting in a video data rate of about 1 Mbps.
Each chunk corresponds, in this case, to a video playout of 2
seconds. To avoid rebuffering the playing application buffers of
video data was typically set to 10 seconds.
4. Video Transport using NetInf Protocol
This section describes how NetInf named data objects (NDOs) are
created from the video chunks in the previous section, and how the
NDOs are made available to clients using the NetInf protocol
[I-D.kutscher-icnrg-netinf-proto] with extensions for subscriptions
Ahlgren, et al. Expires July 2, 2016 [Page 4]
Internet-Draft NetInf Live Video December 2015
using the NetInf SUBSCRIBE and NOTIFY messages. As described in the
NetInf protocol specification, a NetInf NDO consists of the object's
data and, optionally, associated JSON-encoded meta-data.
Two kinds of NetInf NDOs are created for a video stream: one carrying
the video chunks, and another carrying a "header", or manifest, that
describes the stream of video chunks. The latter is described in the
next section.
4.1. Video chunk NDOs
Each video chunk is turned into one NetInf NDO. The bytes of the
video chunk are directly put into the data content of the NDO.
The following meta-data items MUST be supplied with video chunk NDOs:
chunk_number The sequence number of the chunk in the video
starting with zero. (Integer)
video_name The name (ni hash [RFC6920]) of the video stream
header NDO encoded with the URL-SAFE variant of
BASE64 without padding. (ASCII string)
start_time The starting time of the chunk in microseconds
since the start of the video. (Long integer)
duration The duration of the video chunk in microseconds.
(Long integer)
signature A digital signature for the chunk. The signature
is an RSA signature on the SHA-256 hash of the
content as defined in the PKCS #1: RSA Cryptography
Standard. The result is BASE64 encoded without
padding or wrapping, using the URL-SAFE encoding
variant. (ASCII string)
4.2. Publishing video chunk NDOs
Video chunk NDOs are published using NetInf PUBLISH as described in
the NetInf protocol specification [I-D.kutscher-icnrg-netinf-proto].
The JSON-encoded meta-data is supplied as a "meta" item of the "ext"
parameter in the PUBLISH message.
In addition, a NetInf NOTIFY message MUST be sent for each
successfully published video chunk. The NOTIFY message contains the
ni URI [RFC6920] of the stream header NDO and the ni URI of the just
published video chunk NDO. It also contains the sequence number and
signature of the video chunk NDO.
Ahlgren, et al. Expires July 2, 2016 [Page 5]
Internet-Draft NetInf Live Video December 2015
The destination for both of these messages is normally a designated
next-hop NetInf router for the client. How the client finds this
destination is out of scope for this specification.
4.3. Receiving video chunk NDOs
Clients that wish to receive video chunks MAY register to receive the
above notifications using the NetInf SUBSCRIBE extension. They will
then receive the NetInf NOTIFY, and can then issue a NetInf GET to
retrieve the newly published video chunk.
5. Video Manifest
This section describes the video stream header and how it is encoded
and published as a NetInf NDO.
5.1. Video stream header NDOs
Each video stream MUST be described and identified by publishing a
stream header NDO. It contains various information about the stream
and a public key that can be used by clients to verify the
authenticity of the video chunk NDOs. The hash part the NetInf "ni"
name of the header NDO is used to name the video stream. That hash
is included as meta-data of the video chunk NDOs.
The NDO data (content) MUST be constructed by concatenating the bytes
of the following items in binary form:
MAGIC The ASCII character sequence "ENS0".
Public key length Four-byte integer with the length of the public
key. (Note: needs to be network byte order/big
endian, but the implementation likely uses little
endian.)
Public key The public key for the stream encoded according to
X.509 ASN.1 SubjectPublicKeyInfo.
Contents Any additional data provided by the client.
(optional)
The following JSON-encoded meta-data MUST be included with header
NDOs:
title A title for the video stream as provided by the
client. (ASCII string)
Ahlgren, et al. Expires July 2, 2016 [Page 6]
Internet-Draft NetInf Live Video December 2015
description A descriptive text provided by the client. (ASCII
string)
region A short text description of the location where the
video is recorded. (ASCII string)
stream-start The time of the start of the stream in Unix time in
milliseconds. (Long integer)
The following JSON-encoded meta-data SHOULD be included with header
NDOs:
stream-end The time of the end of the stream in Unix time in
milliseconds. The NDO SHOULD be updated with this
item when the recording has completed. (Long
integer)
gps-x The X coordinate (longitude) of the location of the
recorded video in degrees. (Double floating point
number)
gps-y The Y coordinate (latitude) of the location of the
recorded video in degrees. (Double floating point
number)
5.2. Publishing video header NDOs
Video header NDOs are published using NetInf PUBLISH as described in
the NetInf protocol specification [I-D.kutscher-icnrg-netinf-proto].
The JSON-encoded meta-data is supplied as a "meta" item of the "ext"
parameter in the PUBLISH message.
5.3. Browsing available video streams
Clients can use the NetInf SEARCH message to collect information
about the published video stream headers, and with the result
populate a browser listing in the user interface. The user can with
that choose a video to play.
6. Security Considerations
TBD
7. Acknowledgements
The work behind and the writing of this document are supported by the
activity `14082 Networks for Future Media Distribution' within EIT
Digital (formerly EIT ICT labs).
Ahlgren, et al. Expires July 2, 2016 [Page 7]
Internet-Draft NetInf Live Video December 2015
8. References
8.1. Normative References
[I-D.kutscher-icnrg-netinf-proto]
Kutscher, D., Farrell, S., and E. Davies, "The NetInf
Protocol", draft-kutscher-icnrg-netinf-proto-01 (work in
progress), February 2013.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6920] Farrell, S., Kutscher, D., Dannewitz, C., Ohlman, B.,
Keranen, A., and P. Hallam-Baker, "Naming Things with
Hashes", RFC 6920, DOI 10.17487/RFC6920, April 2013,
<http://www.rfc-editor.org/info/rfc6920>.
8.2. Informative References
[Dannewitz2013]
Dannewitz, C., Kutscher, D., Ohlman, B., Farrell, S.,
Ahlgren, B., and H. Karl, "Network of Information (NetInf)
- An Information-Centric Networking Architecture",
Computer Communications 36 (7). pp. 721-735. ISSN
0140-3664, April 2013.
[Malik2015a]
Malik, A., Ahlgren, B., Ohlman, B., Lindgren, A., Ngai,
E., Klingsbo, L., and M. Laeng, "Experiences from a field
test using ICN for live video streaming", Proc. Workshop
on Multimedia Streaming in Information-Centric Networks,
in conjunction with ICME 2015, Turin, Italy, July 2015.
[Malik2015b]
Malik, A., Ahlgren, B., and B. Ohlman, "NetInf Live Video
Streaming for Events with Large Crowds (demo)", Proc. 2nd
ACM Conference on Information-Centric Networking (ICN),
San Francisco, California, USA, Sept-Oct 2015.
8.3. URIs
[1] https://sourceforge.net/projects/netinf/
Authors' Addresses
Ahlgren, et al. Expires July 2, 2016 [Page 8]
Internet-Draft NetInf Live Video December 2015
Bengt Ahlgren
SICS Swedish ICT
Box 1263
Kista SE-164 29
SE
Phone: +46703141562
Email: bengta@sics.se
URI: http://www.sics.se/people/bengt-ahlgren
Boerje Ohlman
Ericsson
Kista SE-164 80
SE
Phone: +46705193187
Email: borje.ohlman@ericsson.com
Adeel Mohammad Malik
Ericsson
Kista SE-164 80
SE
Phone: +46725074492
Email: adeel.mohammad.malik@ericsson.com
Ahlgren, et al. Expires July 2, 2016 [Page 9]