MASTER's THESIS Integrating Video Support Into the New Woize SIP-Client

Total Page:16

File Type:pdf, Size:1020Kb

MASTER's THESIS Integrating Video Support Into the New Woize SIP-Client 2007:201 CIV MASTER'S THESIS Integrating Video Support into the New Woize SIP-client Fredrik Karlsson Luleå University of Technology MSc Programmes in Engineering Media Technology Department of Computer Science and Electrical Engineering Division of Media Technology 2007:201 CIV - ISSN: 1402-1617 - ISRN: LTU-EX--07/201--SE Integrating video support into the new Woize SIP-client Fredrik Karlsson May 15, 2007 Abstract With VoIP services becoming more and more popular and, even beginning to compete with the PSTN (Public Switched Telephone Network) in terms of prices and wide use, companies that provides this service has to evolve to keep their customers and be competitive. Woize Ltd. is one of these companies and as a mean to strengthen their position on the market they want to integrate video call support and video conferencing to their new VoIP-client. This thesis is aimed at helping Woize Ltd. choosing an appropriate video codec and finding an appropriate API for integrating video into their new SIP-powered VoIP-client. The decisions and paths taken in this work are all a product of Woize Ltd's requirements and preferences. In this report there is a description of how and why the codec and API were chosen. The report then describes the API, its features and, the problems that were encountered when setting it up on two of the platforms Woize Ltd are aiming for. Different encoding tweaks of the Theora codec are also tried out to see what quality is acceptable with different bitrates. These are the main objectives. Further on an attempt on implementing a reference model for streaming video on different platforms are conducted, which proved to be more problematic than was expected in the beginning. The results will show that it is possible to integrate video calls into a VoIP client using this economical method, even though an application prototype is not achieved. Lastly a short discussion on how to make video calls available over the SIP protocol between computer and 3G cell phones is held. Acknowledgment First, I would like to thank my supervisor at Algitech, Lars Sundqvist, whose guidance and assistance throughout this work proved to be crucial to the realization of the thesis. Furthermore I wish to express my gratitude to all other employees at Algitech who have helped me in this study. Lastly I would like to thank my family and friends for their support. Table of Contents 1 Introduction...................................................................................................................................6 1.1 Project Background...............................................................................................................6 1.2 Project Objectives and delimitations....................................................................................6 1.3 Business complications.........................................................................................................7 1.4 Terminology..........................................................................................................................7 1.5 Outline...................................................................................................................................8 2 Choosing the video codec.............................................................................................................9 2.1 Method...................................................................................................................................9 2.2 Results.................................................................................................................................10 2.2.1 Ogg Theora..................................................................................................................10 2.2.2 x264.............................................................................................................................11 2.2.3 MPEG2/4, H.263/4, On2©s VP6/7, Quicktime and RealVideo...................................12 2.3 Decision...............................................................................................................................12 3 Choosing the API........................................................................................................................13 3.1 Method.................................................................................................................................13 3.2 Results.................................................................................................................................14 3.2.1 FFmpeg (API)..............................................................................................................14 3.2.3 portVideo (API)...........................................................................................................17 3.2.4 Elecard (SDK).............................................................................................................19 3.2.5 HDX4..........................................................................................................................20 3.2.6 Helix............................................................................................................................22 3.2.7 QuickTime...................................................................................................................26 3.2.8 VP7 (SDK)..................................................................................................................27 3.2.9 Leadtools (SDK).........................................................................................................29 3.3 Decision..............................................................................................................................32 4 GStreamer...................................................................................................................................32 4.1 GStreamer and its packages................................................................................................33 4.1.1 gstreamer and gst-plugins-base...................................................................................34 4.1.2 gst-plugins-good..........................................................................................................34 4.1.3 gst-plugins-ugly...........................................................................................................34 4.1.4 gst-plugins-bad............................................................................................................34 4.1.5 Miscellaneous packages..............................................................................................34 4.2 Elements and its ªglueº......................................................................................................34 4.2.1 Elements......................................................................................................................35 4.2.2 Pads.............................................................................................................................35 4.3 The pipeline........................................................................................................................36 4.4 Advanced concepts.............................................................................................................36 4.4.1 Position tracking and seeking......................................................................................36 4.4.2 Metadata......................................................................................................................36 4.4.3 Interfaces.....................................................................................................................37 4.4.4 Clocks in GStreamer...................................................................................................37 4.4.5 Dynamic Controllable Parameters..............................................................................37 4.4.6 Threads........................................................................................................................37 4.4.7 Autoplugging...............................................................................................................37 4.4.8 Pipeline manipulation.................................................................................................38 4.5 Plug-ins...............................................................................................................................38 4.6 GStreamer on Windows......................................................................................................38 4.6.1 Dependencies..............................................................................................................38 4.6.2 Early problems and fixes.............................................................................................39 4.6.3 The correct way...........................................................................................................40 5 Developing the reference model.................................................................................................40 5.1 Theora encoding tweaks......................................................................................................41 5.1.1 Method.........................................................................................................................41 5.1.2 Results..........................................................................................................................42
Recommended publications
  • Proceedings 2005
    LAC2005 Proceedings 3rd International Linux Audio Conference April 21 – 24, 2005 ZKM | Zentrum fur¨ Kunst und Medientechnologie Karlsruhe, Germany Published by ZKM | Zentrum fur¨ Kunst und Medientechnologie Karlsruhe, Germany April, 2005 All copyright remains with the authors www.zkm.de/lac/2005 Content Preface ............................................ ............................5 Staff ............................................... ............................6 Thursday, April 21, 2005 – Lecture Hall 11:45 AM Peter Brinkmann MidiKinesis – MIDI controllers for (almost) any purpose . ....................9 01:30 PM Victor Lazzarini Extensions to the Csound Language: from User-Defined to Plugin Opcodes and Beyond ............................. .....................13 02:15 PM Albert Gr¨af Q: A Functional Programming Language for Multimedia Applications .........21 03:00 PM St´ephane Letz, Dominique Fober and Yann Orlarey jackdmp: Jack server for multi-processor machines . ......................29 03:45 PM John ffitch On The Design of Csound5 ............................... .....................37 04:30 PM Pau Arum´ıand Xavier Amatriain CLAM, an Object Oriented Framework for Audio and Music . .............43 Friday, April 22, 2005 – Lecture Hall 11:00 AM Ivica Ico Bukvic “Made in Linux” – The Next Step .......................... ..................51 11:45 AM Christoph Eckert Linux Audio Usability Issues .......................... ........................57 01:30 PM Marije Baalman Updates of the WONDER software interface for using Wave Field Synthesis . 69 02:15 PM Georg B¨onn Development of a Composer’s Sketchbook ................. ....................73 Saturday, April 23, 2005 – Lecture Hall 11:00 AM J¨urgen Reuter SoundPaint – Painting Music ........................... ......................79 11:45 AM Michael Sch¨uepp, Rene Widtmann, Rolf “Day” Koch and Klaus Buchheim System design for audio record and playback with a computer using FireWire . 87 01:30 PM John ffitch and Tom Natt Recording all Output from a Student Radio Station .
    [Show full text]
  • High Level Architecture Framework
    Java Media Framework Multimedia Systems: Module 3 Lesson 1 Summary: Sources: H JMF Core Model H JMF 2.0 API Programmers m Guide from Sun: Architecture http://java.sun.com/products/java-media/jmf/2.1/guide/ m Models: time, event, data H JMF 2.0 API H JMF Core Functionality H JMF White Paper from IBM m Presentation http://www- 4.ibm.com/software/developer/library/jmf/jmfwhite. m Processing html m Capture m Storage and Transmission H JMF Extensibility High Level Architecture H A demultiplexer extracts individual tracks of media data JMF Applications, Applets, Beans from a multiplexed media stream. A mutliplexer performs the JMF Presentation and Processing API opposite function, it takes individual tracks of media data and merges them into a single JMF Plug-In API multiplexed media stream. H A codec performs media-data Muxes & Codecs Effects Renderers Demuxes compression and decompression. Each codec has certain input formats that it can handle and H A renderer is an abstraction of a certain output formats that it can presentation device. For audio, the generate presentation device is typically the H An effect filter modifies the computer's hardware audio card track data in some way, often to that outputs sound to the speakers. create special effects such as For video, the presentation device is blur or echo typically the computer monitor. Framework JMF H Media Streams m A media stream is the media data obtained from a local file, acquired over the network, or captured from a camera or microphone. Media streams often contain multiple channels of data called tracks.
    [Show full text]
  • Download Media Player Codec Pack Version 4.1 Media Player Codec Pack
    download media player codec pack version 4.1 Media Player Codec Pack. Description: In Microsoft Windows 10 it is not possible to set all file associations using an installer. Microsoft chose to block changes of file associations with the introduction of their Zune players. Third party codecs are also blocked in some instances, preventing some files from playing in the Zune players. A simple workaround for this problem is to switch playback of video and music files to Windows Media Player manually. In start menu click on the "Settings". In the "Windows Settings" window click on "System". On the "System" pane click on "Default apps". On the "Choose default applications" pane click on "Films & TV" under "Video Player". On the "Choose an application" pop up menu click on "Windows Media Player" to set Windows Media Player as the default player for video files. Footnote: The same method can be used to apply file associations for music, by simply clicking on "Groove Music" under "Media Player" instead of changing Video Player in step 4. Media Player Codec Pack Plus. Codec's Explained: A codec is a piece of software on either a device or computer capable of encoding and/or decoding video and/or audio data from files, streams and broadcasts. The word Codec is a portmanteau of ' co mpressor- dec ompressor' Compression types that you will be able to play include: x264 | x265 | h.265 | HEVC | 10bit x265 | 10bit x264 | AVCHD | AVC DivX | XviD | MP4 | MPEG4 | MPEG2 and many more. File types you will be able to play include: .bdmv | .evo | .hevc | .mkv | .avi | .flv | .webm | .mp4 | .m4v | .m4a | .ts | .ogm .ac3 | .dts | .alac | .flac | .ape | .aac | .ogg | .ofr | .mpc | .3gp and many more.
    [Show full text]
  • Megui) Recommended Fix: Download Here
    Join Forum | Login | Today's Posts | Tutorials | Windows 10 Forum | Windows 8 Forum Windows 7 Help Forums Windows 7 help and support Tutorials » Windows 7: Video Encoding x264 (MeGUI) Recommended Fix: Download Here Page 1 of 3 1 2 3 > Video Encoding (Using MeGUI x264 Encoder) MeGUI x264 Video Encoding Published by Wishmaster 15 Aug 2010 --How to Setup & Encode Content with MeGUI x264 Published by Encoder-- This tutorial will show you how to use MeGUI to create a MP4 or MKV file for your Media Center collection, from your legally owned DVD collection. Wishmaster I will not cover how to decrypt. This tutorial will be in 2 parts: Part 1: Installing,setting up,and configuring everything needed as well as the configuring the encoder itself. Part 2: The actual encoding process. Theres alot of info. to cover so lets get started. Step 1: The Essential Tools & Utilities 1) Shark007's Codec pack (optional) If you plan on using WMC for playback, and wish to use FFDshow as the decoder, you will need the 64bit add on as well. However, for the purposes of MeGUI, only the 32bit package is needed. [Please Note] You do not actually need any 3rd party Codecs such as FFDShow or Sharks codec pack. Both DVD and BluRay can be indexed and encoded with built in codecs. Extracting BluRay video streams to MKV format is the easiest way to work with them. You will need Haali splitter for these MKVs but if using Shark007s package, it is included.. You will need it only if you decide not to use this codec package.
    [Show full text]
  • Linux Sound Subsystem Documentation Release 4.13.0-Rc4+
    Linux Sound Subsystem Documentation Release 4.13.0-rc4+ The kernel development community Sep 05, 2017 CONTENTS 1 ALSA Kernel API Documentation 1 1.1 The ALSA Driver API ............................................ 1 1.2 Writing an ALSA Driver ........................................... 89 2 Designs and Implementations 145 2.1 Standard ALSA Control Names ...................................... 145 2.2 ALSA PCM channel-mapping API ..................................... 147 2.3 ALSA Compress-Offload API ........................................ 149 2.4 ALSA PCM Timestamping ......................................... 152 2.5 ALSA Jack Controls ............................................. 155 2.6 Tracepoints in ALSA ............................................ 156 2.7 Proc Files of ALSA Drivers ......................................... 158 2.8 Notes on Power-Saving Mode ....................................... 161 2.9 Notes on Kernel OSS-Emulation ..................................... 161 2.10 OSS Sequencer Emulation on ALSA ................................... 165 3 ALSA SoC Layer 171 3.1 ALSA SoC Layer Overview ......................................... 171 3.2 ASoC Codec Class Driver ......................................... 172 3.3 ASoC Digital Audio Interface (DAI) .................................... 174 3.4 Dynamic Audio Power Management for Portable Devices ...................... 175 3.5 ASoC Platform Driver ............................................ 180 3.6 ASoC Machine Driver ............................................ 181 3.7 Audio Pops
    [Show full text]
  • Quality Assessment for HEVC Encoded Videos: Study of Transmission and Encoding Errors
    Master Thesis Electrical Engineering November 2016 Quality Assessment for HEVC Encoded Videos: Study of Transmission and Encoding Errors Sohaib Ahmed Siddiqui Yousuf Hameed Ansari Published : Blekinge Tekniska Högskola URL: http//www.bth.se This thesis is submitted to Blekinge Institute of Technology in partial fullfillment of the requirements for the degree of Masters of Science in Electrical Engieering. Contact Information: Author(s): Yousuf Hameed Ansari E-mail: [email protected] Sohaib Ahmed Siddiqui E-mail: [email protected] Supervisor: Benny Lövström TISB, Blekinge Institute of Technology Muhammad Shahid TISB, Blekinge Institute of Technology External Supervisor: Muhammad Arslan Usman WENS, Kumoh National Institute of Technology Gumi, South Korea Examiner: Dr. Sven Johansson TISB, Blekinge Institute of Technology Published : Blekinge Tekniska Högskola URL: http//www.bth.se i Quality Assessment for HEVC Encoded Videos: Study of Transmission and Encoding Errors Abstract There is a demand for video quality measurements in modern video applications specifically in wireless and mobile communication. In real time video streaming it is experienced that the quality of video becomes low due to different factors such as encoder and transmission errors. HEVC/H.265 is considered as one of the promising codecs for compression of ultra- high definition videos. In this research, full reference based video quality assessment is performed. The raw format reference videos have been taken from Texas database to make test videos data set. The videos are encoded using HM9 reference software in HEVC format. Encoding errors has been set during the encoding process by adjusting the QP values. To introduce packet loss in the video, the real-time environment has been created.
    [Show full text]
  • Mpc Downloaded Video Cannot Render the File Mpc Downloaded Video Cannot Render the File
    mpc downloaded video cannot render the file Mpc downloaded video cannot render the file. Theme by Mishar DESIGN, modded by Team Kodi. Copyright © 2017 XBMC Foundation. Quick Links. Sponsors. About Kodi. Kodi is a free and open source media player application developed by the XBMC Foundation, a non-profit technology consortium. Kodi is available for multiple operating-systems and hardware platforms, featuring a 10-foot user interface for use with televisions and remote controls. It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet. MPC Video Renderer 0.5.5.1732. The renderer can potentially work with any DirectShow player, but full support is available only in the MPC-BE (recommended version of MPC- BE is: 1.5.5 or newer). It is also recommended to have an SSE2-capable CPU, with Windows 7 (or newer) installed and at leaser a DirectX 9 video card. Starting with version 0.3.0 of MPC Video Renderer, it has been added support for XySubFilter. Changes to MPC Video Renderer 0.5.4 : - Fixed dithering when outputting 10-bit for DX11 mode. - Improved compatibility with CoreAVC Video Decoder. - Fixed frame rotation when using DXVA2 or D3D11 VP. - Optimization of processing when using only DXVA2 or D3D11 VP. — Full list of changes. Solved: AVI/MP4/MKV Cannot Render the File. Stuck with the "Cannot Render the File" error on your Media Player Classic? You'll find everything from why you're getting this error. And you will also learn to how to fix it in this post.
    [Show full text]
  • Capabilities of the Horchow Auditorium and the Orientation
    Performance Capabilities of Horchow Auditorium and Atrium at the Dallas Museum of Art Horchow Auditorium Capacity and Stage: The auditorium seats 333 people (with a 12 removable chair option in the back), maxing out the capacity at 345). The stage is 45’ X 18’and the screen is 27’ X 14’. A height adjustable podium, microphone, podium clock and light are standard equipment available. Installed/Available Equipment Sound: Lighting: 24 channel sound board 24 fixed lights 4 stage monitors (with up to 4 Mixes) 5 movers (these give a wide array of lighting looks) 6 hardwired microphones 4 wireless lavaliere microphones 2 handheld wireless microphones (with headphone option) 9-foot Steinway Concert Grand Piano 3 Bose towers (these have been requested by Acoustic performers before and work very well) Music stands Projection Panasonic PTRQ32 4K 20,000 Lumen Laser Projector Preferred Video Formats in Horchow Blu Ray DVD Apple ProRes 4:2:2 Standard in a .mov wrapper H.264 in a .mov wrapper Formats we can use, but are not optimal MPEG-1/2 Dirac / VC-2 DivX® (1/2/3/4/5/6) MJPEG (A/B) MPEG-4 ASP WMV 1/2 XviD WMV 3 / WMV-9 / VC-1 3ivX D4 Sorenson 1/3 H.261/H.263 / H.263i DV H.264 / MPEG-4 AVC On2 VP3/VP5/VP6 Cinepak Indeo Video v3 (IV32) Theora Real Video (1/2/3/4) Atrium Capacity and Stage: The Atrium seats up to 500 people (chair rental required). The stage available to be installed in the Atrium is 16’ x 12’ x 1’.
    [Show full text]
  • (A/V Codecs) REDCODE RAW (.R3D) ARRIRAW
    What is a Codec? Codec is a portmanteau of either "Compressor-Decompressor" or "Coder-Decoder," which describes a device or program capable of performing transformations on a data stream or signal. Codecs encode a stream or signal for transmission, storage or encryption and decode it for viewing or editing. Codecs are often used in videoconferencing and streaming media solutions. A video codec converts analog video signals from a video camera into digital signals for transmission. It then converts the digital signals back to analog for display. An audio codec converts analog audio signals from a microphone into digital signals for transmission. It then converts the digital signals back to analog for playing. The raw encoded form of audio and video data is often called essence, to distinguish it from the metadata information that together make up the information content of the stream and any "wrapper" data that is then added to aid access to or improve the robustness of the stream. Most codecs are lossy, in order to get a reasonably small file size. There are lossless codecs as well, but for most purposes the almost imperceptible increase in quality is not worth the considerable increase in data size. The main exception is if the data will undergo more processing in the future, in which case the repeated lossy encoding would damage the eventual quality too much. Many multimedia data streams need to contain both audio and video data, and often some form of metadata that permits synchronization of the audio and video. Each of these three streams may be handled by different programs, processes, or hardware; but for the multimedia data stream to be useful in stored or transmitted form, they must be encapsulated together in a container format.
    [Show full text]
  • Ease Your Automation, Improve Your Audio, with Ffmpeg
    Ease your automation, improve your audio, with FFmpeg A talk by John Warburton, freelance newscaster for the More Radio network, lecturer in the Department of Music and Media in the University of Surrey, Guildford, England Ease your automation, improve your audio, with FFmpeg A talk by John Warburton, who doesn’t have a camera on this machine. My use of Liquidsoap I used it to develop a highly convenient, automated system suitable for in-store radio, sustaining services without time constraints, and targeted music and news services. It’s separate from my professional newscasting job, except I leave it playing when editing my professional on-air bulletins, to keep across world, UK and USA news, and for calming music. In this way, it’s incredibly useful, professionally, right now! What is FFmpeg? It’s not: • “a command line program” • “a tool for pirating” • “a hacker’s plaything” (that’s what they said about GNU/Linux once!) • “out of date” • “full of patent problems” It asks for: • Some technical knowledge of audio-visual containers and codec • Some understanding of what makes up picture and sound files and multiplexes What is FFmpeg? It is: • a world-leading multimedia manipulation framework • a gateway to codecs, filters, multiplexors, demultiplexors, and measuring tools • exceedingly generous at accepting many flavours of audio-visual input • aims to achieve standards-compliant output, and often succeeds • gives the user both library-accessed and command-line-accessed toolkits • is generally among the fastest of its type • incorporates many industry-leading tools • is programmer-friendly • is cross-platform • is open source, by most measures of the term • is at the heart of many broadcast conversion, and signal manipulation systems • is a viable Internet transmission platform Integration with Liquidsoap? (1.4.3) 1.
    [Show full text]
  • Command-Line Sound Editing Wednesday, December 7, 2016
    21m.380 Music and Technology Recording Techniques & Audio Production Workshop: Command-line sound editing Wednesday, December 7, 2016 1 Student presentation (pa1) • 2 Subject evaluation 3 Group picture 4 Why edit sound on the command line? Figure 1. Graphical representation of sound • We are used to editing sound graphically. • But for many operations, we do not actually need to see the waveform! 4.1 Potential applications • • • • • • • • • • • • • • • • 1 of 11 21m.380 · Workshop: Command-line sound editing · Wed, 12/7/2016 4.2 Advantages • No visual belief system (what you hear is what you hear) • Faster (no need to load guis or waveforms) • Efficient batch-processing (applying editing sequence to multiple files) • Self-documenting (simply save an editing sequence to a script) • Imaginative (might give you different ideas of what’s possible) • Way cooler (let’s face it) © 4.3 Software packages On Debian-based gnu/Linux systems (e.g., Ubuntu), install any of the below packages via apt, e.g., sudo apt-get install mplayer. Program .deb package Function mplayer mplayer Play any media file Table 1. Command-line programs for sndfile-info sndfile-programs playing, converting, and editing me- Metadata retrieval dia files sndfile-convert sndfile-programs Bit depth conversion sndfile-resample samplerate-programs Resampling lame lame Mp3 encoder flac flac Flac encoder oggenc vorbis-tools Ogg Vorbis encoder ffmpeg ffmpeg Media conversion tool mencoder mencoder Media conversion tool sox sox Sound editor ecasound ecasound Sound editor 4.4 Real-world
    [Show full text]
  • Aula2: Utilizando O Canivete Suíço Mencoder Capacitação 2010
    Capacitação realizada através de parceria entre o Núcleo de Tecnologia Educacional Municipal - NTM Núcleo de Tecnologia Educacional Estadual - NTE de Volta Redonda CapacitaçãoCapacitação 20102010 Aula2:Aula2: UtilizandoUtilizando oo CaniveteCanivete SuíçoSuíço MencoderMencoder O MEncoder é uma ferramenta em linha de comando para encodação de vídeos sob a Licença Pública Geral (GPL). O MEncoder é distribuído juntamente com o MPlayer e permite converter todos os formatos de vídeo aceitos pelo MPlayer para um grande número de outros players. Possui diversos filtros de áudio e vídeo para a manipulação dos arquivos. Devido a enorme quantidade de opções, o MEncoder pode parecer pouco amigável no começo, mas ele é uma ferramenta extremamente poderosa para conversão de vídeo. Alguns frontends foram desenvolvidos para torná- lo mais acessível. O Básico Um mal entendido muito comum é o de que o MPlayer, por ser capaz de reproduzir diversos containers e codecs de áudio e vídeo, seria também capaz de codificar arquivos nestes mesmos formatos. A lista de codecs para codificação de mídia é muito longa, mas alguns de código livre não estão inclusos por exemplo: FLAC e Theora. Mas não é algo com o que se preocupar, ainda restam diversas opções, até mesmo se você deseja codificar um arquivo para reprodução em Windows ou Mac. Antes de entrar em detalhes, vamos observar o funcionamento básico num processo de re-codificação de um arquivo em um formato que o MPlayer não pode reproduzir, para o formato MPEG4: mencoder arquivo.flv -o arquivo.avi -ovc lavc -oac pcm Explicando cada opção -arquivo.flv: nome do arquivo de vídeo original que você deseja recodificar.
    [Show full text]