RTP Protocol Transport of H.264 Video and AAC Audio

Similar documents
point to point and point to multi point calls over IP

IP-Telephony Real-Time & Multimedia Protocols

RTP / RTCP. Announcements. Today s Lecture. RTP Info RTP (RFC 3550) I. Final Exam study guide online. Signup for project demos

Unit 23. RTP, VoIP. Shyam Parekh

An architecture for the delivery. of DVB services over IP networks Rennes, January 2007 INTRODUCTION DIGITAL VIDEO TRANSPORT

Advanced Networking Voice over IP: RTP/RTCP The transport layer

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

Voice over IP: RTP/RTCP The transport layer

Audio and Video for the Internet

EDA095 Audio and Video Streaming

internet technologies and standards

APPLICATION BULLETIN AAC Transport Formats

Encapsulating Voice in IP Packets

Classes of multimedia Applications

2.1 Introduction. 2.2 Voice over IP (VoIP)

An Introduction to VoIP Protocols

TECHNICAL CHALLENGES OF VoIP BYPASS

Voice-Over-IP. Daniel Zappala. CS 460 Computer Networking Brigham Young University

CHAPTER. The Technology of Internet Protocol Networks

technology standards and protocol for ip telephony solutions

Keywords: VoIP calls, packet extraction, packet analysis

Internet Services & Protocols Multimedia Applications, Voice over IP

UVOIP: CROSS-LAYER OPTIMIZATION OF BUFFER OPERATIONS FOR PROVIDING SECURE VOIP SERVICES ON CONSTRAINED EMBEDDED DEVICES

Voice over IP. Demonstration 1: VoIP Protocols. Network Environment

CSE 237A Final Project Final Report

Internet Services & Protocols Multimedia Applications, Voice over IP

VoIP QoS. Version 1.0. September 4, AdvancedVoIP.com. Phone:

Voice over IP. Presentation Outline. Objectives

Performance Evaluation of VoIP Services using Different CODECs over a UMTS Network

SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services Transmission multiplexing and synchronization

VOIP Project: System Design

Requirements of Voice in an IP Internetwork

Computer Networks. Voice over IP (VoIP) Professor Richard Harris School of Engineering and Advanced Technology (SEAT)

Application Note. Pre-Deployment and Network Readiness Assessment Is Essential. Types of VoIP Performance Problems. Contents

Voice over IP (VoIP) Overview. Introduction. David Feiner ACN Introduction VoIP & QoS H.323 SIP Comparison of H.323 and SIP Examples

Chapter 3 ATM and Multimedia Traffic

Glossary of Terms and Acronyms for Videoconferencing

Android Multi-Hop Video Streaming using. wireless networks.

WHITEPAPER IP Streaming of MPEG-4: Native RTP vs MPEG-2 Transport Stream

VoIP network planning guide

Internet Working 15th lecture (last but one) Chair of Communication Systems Department of Applied Sciences University of Freiburg 2005

Introduce Quality of Service in your IP_to_IP unreliable infrastructure

Design and implementation of IPv6 multicast based High-quality Videoconference Tool (HVCT) *

4Kp60 H.265/HEVC Glass-to-Glass Real-Time Encoder Reference Design

Protocols for Application and Desktop Sharing

Chapter 9. IP Secure

Internet Security. Internet Security Voice over IP. Introduction. ETSF10 Internet Protocols ETSF10 Internet Protocols 2011

ISO/IEC INTERNATIONAL STANDARD

Multimedia Communications Voice over IP

Receiving the IP packets Decoding of the packets Digital-to-analog conversion which reproduces the original voice stream

Introduction to VoIP. 陳 懷 恩 博 士 副 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 TEL: # 255

INFORMATION TECHNOLOGY - GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO: SYSTEMS Recommendation H.222.0

Introduction VOIP in an Network VOIP 3

Indepth Voice over IP and SIP Networking Course

Microsoft TV Test. Technology Background. ICC Technology. Application Note. by John Williams

A Method of Pseudo-Live Streaming for an IP Camera System with

Easy H.264 video streaming with Freescale's i.mx27 and Linux

VoIP with SIP. Session Initiation Protocol RFC-3261/RFC

VIDEOCONFERENCING. Video class

Web-Conferencing System SAViiMeeting

Internet Architecture and Philosophy

VoIP Analysis Fundamentals with Wireshark. Phill Shade (Forensic Engineer Merlion s Keep Consulting)

Question: 3 When using Application Intelligence, Server Time may be defined as.

Digital Audio and Video Data

7 Streaming Architectures

AFDX networks. Computers and Real-Time Group, University of Cantabria

Performance Evaluation of AODV, OLSR Routing Protocol in VOIP Over Ad Hoc

Bandwidth Adaptation for MPEG-4 Video Streaming over the Internet

Network Simulation Traffic, Paths and Impairment

Clearing the Way for VoIP

B12 Troubleshooting & Analyzing VoIP

Voice Over IP. Priscilla Oppenheimer

TSIN02 - Internetworking

Putting the "Ultra in UltraGrid: Full rate Uncompressed HDTV Video Conferencing

Solutions to enhance the performance & security of your networks & applications.

Nortel Technology Standards and Protocol for IP Telephony Solutions

Internet, Part 2. 1) Session Initiating Protocol (SIP) 2) Quality of Service (QoS) support. 3) Mobility aspects (terminal vs. personal mobility)

How To Analyze The Security On An Ipa Wireless Sensor Network

Protocols and Architecture. Protocol Architecture.

ADVANTAGES OF AV OVER IP. EMCORE Corporation

The Picture must be Clear. IPTV Quality of Experience

A seminar on Internet Telephony

VoIP Bandwidth Calculation

Combining Voice over IP with Policy-Based Quality of Service

Networked AV Systems Pretest

Project Code: SPBX. Project Advisor : Aftab Alam. Project Team: Umair Ashraf (Team Lead) Imran Bashir Khadija Akram

International Telecommunication Union. Common VoIP Metrics. Alan Clark. CEO, Telchemy

10/100/1000 Ethernet MAC with Protocol Acceleration MAC-NET Core

Scalable Video Streaming in Wireless Mesh Networks for Education

Voice over IP phone Software Design. Software Engineering Project University of Oulu 2004

The OSI & Internet layering models

VOICE over IP H.323 Advanced Computer Network SS2005 Presenter : Vu Thi Anh Nguyet

Transcription:

RTP Protocol Transport of H.264 Video and AAC Audio Application Note: AN100 November 15, 2012 Cimarron Systems, LLC 2012 all rights reserved.

Table of Contents Using the RTP Protocol to Transport Video and Audio!... 1 DMSDK Development Environment... 1 RTP A/V Streaming Client/Server Application Architecture... 1 RTP Protocol Transport of H.264 Video/AAC Audio... 2 RTP H.264 Video/AAC Audio Transport Timing... 4 RTP A/V Streaming Server Application Functional Diagram... 4 Additional Resources!... 5 List of Figures Figure 1: DMSDK Development Context Diagram....1 Figure 2: RTP A/V Streaming Client/Server Applications....2 Figure 3: RTP H.264 Video Packet Structure....2 Figure 4: RTP AAC Audio Packet Structure....3 Figure 5: RTP Protocol H.264 Video/AAC Audio Transport Timing Diagram....4 Figure 6: RTP A/V Streaming Client/Server Application Functional Block Diagram...5 Document: AN-121115-1 Document Status: Released Revision: 1.0 Notice: The copyright in this document, which contains information of a proprietary nature, is vested in Cimarron Systems, LLC. The content of this document may not be used for purposes other than that for which it has be supplied and may not be reproduced, either wholly or in part, in any way whatsoever, nor may it be used by, or its content divulged to any other person whomsoever without prior written permission. For further information regarding this document, please contact Cimarron Systems, LLC at documents@cimarronsystems.com. 2012 Cimarron Systems, LLC all rights reserved. i

Using the RTP Protocol to Transport Video and Audio The present application note describes the use of the RTP Internet Protocol (IP) to simultaneously transport H.264 video and AAC audio bitstreams across the network. Specifically, the RTP A/V Streaming Client/ Server Applications available as part of the Cimarron Systems Digital Media Software Development Kits (DMSDK) implements many of the concepts outlined here. DMSDK Development Environment Figure 1 shows a context diagram of the typical development environment in which the DMSDK operates, including: the TM320DM36x DVEVM running a number of the DMSDK components, a Ubuntu Linux Host computer, an audio/video source, and a video display/audio output device. Figure 1: DMSDK Development Context Diagram. RTP A/V Streaming Client/Server Application Architecture As illustrated in Figure 2, RTP A/V Streaming Server and RTP A/V Streaming Client Applications include: a RTCP Transmitter User Agent; an A/V Encoder set for encoding video to H.264 and audio to AAC-LC; and a RTP Transmitter. The Streaming A/V Decoder component includes: a RTP Receiver; a RTCP Receiver User Agent; and a MPEG-2 Transport Stream (TS) Encoder that multiplexes the encoded H.264 video and AAC-LC audio into a transport stream. Both the RTP A/V Streaming Server and RTP A/V Streaming Client Applications implement H.264 video and AAC audio streaming in accordance with IETF RFC 3550 RTP: A Transport Protocol for Real-Time 2012 Cimarron Systems, LLC all rights reserved. 1

Applications, RFC 6184 RTP Payload for H.264 Video, RFC 3550 RTP: A Transport Protocol for Real-Time Applications, and RFC 3551 RTP Profile for Audio and Video Conferences with Minimal. DMSDK RTP A/V Streaming Application Software Architecture DVEVM36x Ubuntu Linux Host RTP A/V Streaming Server RTP A/V Streaming Client A/V Capture H.264 Video Encoder AAC-LC Audio Encoder RTCP Tx User Agent RTP Tx TI Embedded Linux Kernel MPEG-2 TS Output / File Writer MPEG-2 TS Encoder RTCP Rx User Agent RTP Rx Ubuntu Linux Network: Ethernet, Wireless, etc. Figure 2: RTP A/V Streaming Client/Server Applications. RTP Protocol Transport of H.264 Video/AAC Audio Figure 3 shows the structure of the RTP H.264 Video Packet constructed in accordance with IETF RFC 6184 RTP Payload for H.264 Video which implements a simple method to signal the start of each H.264 Network Abstraction Layer (NAL) Unit as well as its Raw Byte Sequence Payload (RBSP), i.e., the NAL Unit bitstream data bytes (as detailed below, the NAL Unit start signaling method appends a single byte to the end of the standard RTP Packet Header). RTP H.264 Video Packet Structure 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 V P X CC M payload type sequence number timestamp synchronization source identifier (SSRC) contributing source identifiers (CSRC) F NRI NAL unit type raw byte sequence payload (RBSP) optional RTP padding Figure 3: RTP H.264 Video Packet Structure. Figure 4 shows the structure of the RTP AAC Audio Packet constructed in accordance with IETF RFC 3550 RTP: A Transport Protocol for Real-Time Applications which implements carriage of the AAC audio 2012 Cimarron Systems, LLC all rights reserved. 2

bitstream via the common Audio Data Transport Stream (ADTS). 1 2 RTP AAC Audio Packet Structure 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 V P X CC M payload type sequence number timestamp synchronization source identifier (SSRC) contributing source identifiers (CSRC) audio data transport stream (ADTS) optional RTP padding Figure 4: RTP AAC Audio Packet Structure. The syntax descriptions present below apply to both RTP H.264 Video and AAC Audio Packets: V (2 bits): RTP Protocol Version, always equal to 2. P (1 bit): If the Padding bit is set, the packet contains one or more additional padding octets at the end which are not part of the payload. X (1 bit): If the Extension bit is set, the fixed header MUST be followed by exactly one Header Extension. CC (4 bits): The CSRC Count contains the number of CSRC identifiers that follow the fixed header. M (1 bit): The interpretation of the Marker is defined by a profile it is intended to allow significant events such as frame boundaries to be marked in the packet stream. Payload Type (7 bits): This field identifies the format of the RTP payload and determines its interpretation by the application. Sequence Number (16 bits): The Sequence Number increments by one for each RTP data packet sent and may be used by the receiver to detect packet loss and to restore packet sequence (the initial value of the sequence number should be random). Timestamp (32 bits): The Timestamp reflects the sampling instant of the first octet in the RTP data packet. The sampling instant MUST be derived from a clock that increments monotonically and linearly in time to allow synchronization and jitter calculations. SSRC (32 bits): The SSRC field identifies the Synchronization Source this identifier should be chosen randomly, with the intent that no two Synchronization Sources within the same RTP session will have the same SSRC Identifier. CSRC (32 bits): The CSRC List identifies the contributing sources for the payload contained in this packet. The number of identifiers is given by the CC Field only 15 can be identified not used in the present implementation. Padding (M bytes): Padding bytes added to the end of a packet in order to force an whole number of packet bytes. 1 See the CS365-TI DMSDK and/or CS368-TI Datasheets for details regarding Cimarron Systems DMSDK development environment, features, architecture, and capabilities. 2 For an excellent tutorial concerning the application of RTP, please see the presentation RTP: Multimedia Streaming over IP, by Colin Perkins, USC Information Sciences Institute. 2012 Cimarron Systems, LLC all rights reserved. 3

The following syntax descriptions apply only to RTP H.264 Video Packets: F (1 bit): A value of 0 indicates that the NAL Unit Type octet and payload should not contain bit errors or other syntax violations. A value of 1 indicates that the NAL Unit Type octet and payload may contain bit errors or other syntax violations. NRI (2 bits): A value of 00 indicates that the content of the NAL Unit is not used to reconstruct reference pictures for inter picture prediction value greater than 00 indicate that the decoding of the NAL Unit is required to maintain the integrity of the reference pictures. NAL Unit Type (5 bits): Interpretation of NAL Unit Type values 0-23 are the same as ITU-T H.264 recommendation see RFC 6184 Table 3 for the interpretation of values 24-29. Raw Byte Sequence Payload (N bytes): A sequence of bytes constituting the H.264 video NAL bitstream. The following syntax descriptions apply only to RTP AAC Audio Packets: Audio Data Transport Stream (1024 bytes): A sequence of bytes constituting the AAC audio bitstream. RTP H.264 Video/AAC Audio Transport Timing The timing diagram shown in Figure 5 illustrates the relationship between audio/video sample frame timing, packet transmission timing, and RTCP packet transmission/reception for the RTP A/V Client/Streaming Server Applications when set for H.264 (30 fps)/aac (32 ks/s). In the present example, the video timestamp clock is 90 khz while the audio timestamp is 32 khz, i.e., the audio sampling rate. RTP Transport Timing for H.264 (30 fps) and AAC (32 ks/s) 33 ms 1 15 30 3000 3015 3030 6000 6015 6030 90000 90015 90030 video_timestamp_clk (90 khz) video_rtp_timestamp_value 11 µs v_rtp_random_# + 0 v_rtp_random_# + 3000 v_rtp_random_# + 90000 video_rtp_tx 32 ms 1 5 10 1024 video_packet 0 video_packet 1 video_packet 29 1029 1034 2048 2053 2058 32768 32773 32778 audio_timestamp_clk (32 khz) 31.25 µs audio_rtp_timestamp_value audio_rtp_tx rtcp_tx rtcp_tx_packet 0 a_rtp_random_# + 0 a_rtp_random_# + 1024 a_rtp_random_# + 32768 1024 samples 1024 samples aac_packet 0 aac_packet 1 aac_packet 31 1024 samples rtcp_tx_packet m rtcp_rx rtcp_rx_packet 0 rtcp_rx_packet n Figure 5: RTP Protocol H.264 Video/AAC Audio Transport Timing Diagram. RTP A/V Streaming Server Application Functional Diagram Figure 6 shows a functional block diagram of the RTP A/V Streaming Server Application portion of the 2012 Cimarron Systems, LLC all rights reserved. 4

software architecture illustrated in Figure 2. Note that the blue colored blocks represent the functional components that starts up/shuts down the application; reads the keyboard/mouse inputs; initializes the audio/video codecs; captures and encodes the audio/video frames; constructs and transmits the audio/video RTP packets; composes then transmits RTCP Session Messages; receives then interprets the RTCP QoS Messages; and, based upon QoS status, adjusts application performance parameters as required. RTP A/V Streaming Server Implementation Command Line main() process command line create threads pass control control() manage threads shutdown Legend: Request Response I/O Key / Mouse Input Thread Thread Thread Thread Scan Inputs capture() Capture Buffers video() audio() time() System Time Session Messages QoS Messages Request Codec Types Codec Type Data Encoded Video Encoded Audio u_interface() codecs() dv_rtp() da_rtp() rtcp_tx() rtcp_rx() Keyboard / Mouse Inputs UDP/IP Ethernet Tx UDP/IP Ethernet Tx TCP/IP Ethernet Tx TCP/IP Ethernet Rx Figure 6: RTP A/V Streaming Client/Server Application Functional Block Diagram. Additional Resources In addition to those already described, listed below are a number of resources that may be helpful: 1. RTP FAQ at Columbia University 2. RTP Tools at Columbia University 3. WireShark Capture for RTP For more information regarding this and other Cimarron Systems products, please contact us using the contact information below. 2012 Cimarron Systems, LLC all rights reserved. 5

Contact Information: Cimarron Systems, LLC P.O. Box 1137 Evergreen, Colorado telephone: (303) 674-9207 email: info@cimarronsystems.com www.cimarronsystems.com Revision History: Date Version Notes 11/15/2012 version 1.0 Initial version 2012 Cimarron Systems, LLC all rights reserved. 6