1 / 20

xStreamer Modular Multimedia Streaming

xStreamer Modular Multimedia Streaming. Nicolas Staelens nicolas.staelens@intec.ugent.be www.ibcn.intec.ugent.be INTEC Broadband Communication Networks (IBCN) Department of Information Technology (INTEC) Ghent University - IBBT. xStreamer. In-house developed modular multimedia streamer

donagh
Download Presentation

xStreamer Modular Multimedia Streaming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. xStreamerModular Multimedia Streaming Nicolas Staelens nicolas.staelens@intec.ugent.be www.ibcn.intec.ugent.be INTEC Broadband Communication Networks (IBCN) Department of Information Technology (INTEC) Ghent University - IBBT

  2. xStreamer • In-house developed modular multimedia streamer • Alexis Rombaut (alexis.rombaut@intec.ugent.be) • Written in C++ • Uses libraries: • libavformat/libavcodec (parsing/encoding/decoding) • live555 (RTSP) • jrtplib (RTP) • Released under General Public License (GPL) • Freely available at http://xstreamer.atlantis.ugent.be/

  3. ModularMultimedia Streaming Inspired by Click Modular Router & DirectShow Offers different components • Performs basic functions • Readers, packetizers, multiplexers, schedulers, transmitters, receivers, writers, classifiers, analyzers Streamer is directed graph of components

  4. ModularMultimedia Streaming Supports audio and video • Using RTP packetization: • MPEG-1/2/4 Video & Audio • Using MPEG-2 Transport Streams: • MPEG-1/2/4 Video & Audio • H.264 AVC/SVC

  5. ModularMultimedia Streaming Multitude of supportedprotocols RTP/UDP RTSP/RTP/UDP UDP TCP

  6. What can xStreamer do? Advanced streaming server • Own MPEG-2 TS multiplexer • SVC streaming • Differentiated streaming using classifiers Proxy/client • Proxy: convert differentiated stream into a single stream • Client: save captured stream to file Video tool • No ‘real’ streaming involved • Simulate packet loss • Collect tracefiles during streaming

  7. Create xStreamer configuration Configuration saved in XML-based file • Describes directed graph of components and connections between components Graphical User Interface • Visualize directed graph • Drag components and draw connections • Configure components

  8. Example: Differentiated SVC streaming Read raw H.264 video stream Avoidburstsbysmoothing packets over time Packetize frames into packets as defined in RFC3984 Classify NAL units dependingon SVC layer Stream different layers over different connections

  9. Example: Proxy/Client Proxy Client

  10. xStreamer as video tool Offline simulator • No ‘real’ streaming • Simulate packet loss using Classifier component • Random, Gilbert-Elliott • Write resulting packet stream back to file Tracefile generation • Packetizer: video trace • Transmitter: sender trace • Receiver: receiver trace • Classifier: sender & receiver trace

  11. xStreamer – HDTV PVS creation HDTV PVS Creation • H.264/AVC • Packet loss Toolchain • Encoding • Streaming • Decoding & syncing

  12. HDTV PVS Creation – xStreamer config Packet loss simulator usingGilbert-Elliott model

  13. HDTV PVS Creation – Tracefiles

  14. HDTV PVS Creation – Tracefiles Video tracefilegeneration • 0 H 539 1 1.066667 • 0 H 24 1 1.066667 • 0 H 4 1 1.066667 • 0 I 256835 180 1.066667 • 1 P 111970 79 1.133333 • 2 B 52428 37 1.100000 • 3 P 43918 31 1.200000 • 4 B 30967 22 1.166667 • 5 P 62890 45 1.266667 • 6 B 20660 15 1.233333 • 7 P 69342 49 1.300000 • 8 P 65287 46 1.333333 • 9 P 78591 56 1.400000 • 10 B 31715 23 1.366667 • 11 P 78028 55 1.466667 • 12 B 34809 25 1.433333 • P 71582 51 1.533333 • … <id> <slice_type> <size> <nb_packets> <pts>

  15. HDTV PVS Creation – Tracefiles Sender tracefile 0.00 id 1 udp 24 0.00 id 2 udp 4 0.00 id 3 udp 1430 0.00 id 4 udp 1430 0.00 id 5 udp 1430 0.00 id 6 udp 1430 0.00 id 7 udp 1430 0.00 id 8 udp 1430 0.00 id 9 udp 1430 0.00 id 10 udp 1430 0.00 id 11 udp 1430 0.00 id 12 udp 1430 0.00 id 13 udp 1430 0.00 id 14 udp 1430 0.00 id 15 udp 1430 0.00 id 16 udp 1430 0.00 id 17 udp 1430 … <tx_time> <pckt_id> <protocol> <size>

  16. HDTV PVS Creation – Tracefiles Receiver tracefile 0.00 id 0 udp 539 0.00 id 1 udp 24 0.00 id 2 udp 4 0.00 id 3 udp 1430 0.00 id 4 udp 1430 0.00 id 5 udp 1430 0.00 id 6 udp 1430 0.00 id 7 udp 1430 0.00 id 8 udp 1430 0.00 id 9 udp 1430 0.00 id 10 udp 1430 0.00 id 11 udp 1430 0.00 id 12 udp 1430 0.00 id 15 udp 1430 0.00 id 16 udp 1430 0.00 id 17 udp 1430 0.00 id 18 udp 1430 … <rcv_time> <pckt_id> <protocol> <size> 2 packets lost: id 13 & 14

  17. Combining tracefiles video trace sender trace receiver trace 0 H CORRECT 0 H CORRECT 0 H CORRECT 0 I DAMAGED …

  18. PVS Creation: decoding & syncing Decode streamed raw H.264/AVC file • avc-decoder based on libavcodec (ffmpeg) • Only decodes correctly received frames Align decoded and original sequence • Decoded sequence misses pictures • Lost & damaged • Tracefile analysis • Locate missing pictures • Conceal missing pictures • Copy previous frame, gray, black, green, …

  19. Conclusion Modular architecture • Logical structure • Easily extendable Advanced streaming server • SVC Support • Differentiated streaming Video tool • Network simulation • Tracefile generation

  20. Questions ?

More Related