Exposing Vulnerabilities in Media Software

Total Page:16

File Type:pdf, Size:1020Kb

Exposing Vulnerabilities in Media Software Introduction Containers and Codecs Fuzzing Exposing Vulnerabilities in Media Software Fuzzing Techniques Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis David Thiel, iSEC Partners Other formats and features Results Finding root causes March 31st, 2008 Collateral damage and future directions Summary Agenda 1 Introduction Introduction 2 Containers and Codecs Containers and Codecs 3 Fuzzing Fuzzing Fuzzing Fuzzing Techniques Techniques Fuzzing Tools Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis Fuzzbox Other formats and features Case study: Ogg-Vorbis Results Other formats and features Finding root causes 4 Results Collateral damage and future 5 Finding root causes directions Summary 6 Collateral damage and future directions Introduction Hello Introduction I’m a consultant and researcher with iSEC Partners Containers Focus on application security and Codecs Audio hobbyist (definitely no expert) Fuzzing Fuzzing What’s this all about? Techniques Fuzzing Tools The attack surface and potential of media codecs, players Fuzzbox Case study: and related devices Ogg-Vorbis Other formats Focus here is slightly on audio, but that doesn’t matter and features Video works the same way, and uses the same container Results formats Finding root causes Takeaways Collateral damage and Understand attack surface and implications future Understand how to fuzz and design fuzzers for media directions Help developers understand how to improve code Summary Plant ideas for future research Why this matters Omnipresent and always on Introduction Promiscuously shared, played, streamed Containers Comes from extremely untrusted, often anonymous sources and Codecs Most don’t think to refrain from playing “untrusted” media Fuzzing Fuzzing And most browsers will play automatically anyhow Techniques Fuzzing Tools It’s political Fuzzbox Case study: Ogg-Vorbis There are people out there who don’t like you stealing Other formats and features music: the RIAA, and companies like Sony Results Exploits here are ripe for corporate abuse—it’s happened Finding root before causes It’s “rich” Collateral damage and Media playback/parsing software is almost by definition future directions “excessively functional” Summary Does tons of parsing Why media security is under-explored Introduction Modern codecs are designed to be resistant to corruption Containers Bit-flipping an Ogg file, for example, will usually not work and Codecs Example: zzuf, a popular bit-flipping fuzzer, noted VLC as Fuzzing Fuzzing being “robust” against fuzzing of Vorbis, Theora, FLAC Techniques Fuzzing Tools As zzuf notes, this does not mean there are no bugs; we Fuzzbox Case study: just need a targeted fuzzer Ogg-Vorbis Other formats Deep research not historically necessary and features Results Most media software exploits thus far have been simple: Finding root long playlists, URL names, etc. causes Few attacks using media files themselves Collateral Even fewer targeting things on the codec level damage and future But this is changing as of late directions Summary Terminology: Containers and Codecs Introduction Container formats organize multiple types of media Containers and Codecs streams and metadata Fuzzing “tags”—content describing end-user relevant data Fuzzing Techniques subtitles Fuzzing Tools Fuzzbox sync data, frame ordering Case study: Ogg-Vorbis management of separate bitstreams Other formats and features Codec data describes and contains the actual video/audio Results sample rate Finding root bitrate causes channels Collateral damage and compressed or raw media data future directions Summary Examples: Containers and Codecs Introduction Examples of media containers: Containers AVI and Codecs Ogg Fuzzing MPEG-2 Fuzzing Techniques MP4 Fuzzing Tools Fuzzbox ASF Case study: Ogg-Vorbis Other formats Examples of media codecs: and features DivX Results Vorbis Finding root causes Theora Collateral WMV damage and future Xvid directions Sorenson Summary What to fuzz Introduction Two main areas are important here Containers and Codecs Content metadata Fuzzing ID3, APEv2, Vorbis comments, album art, etc. Fuzzing Techniques Because many types allow arbitrarily large content, this is Fuzzing Tools Fuzzbox a great place to store shellcode with plenty of NOP Case study: Ogg-Vorbis cushion—even if the bug isn’t in metadata parsing Other formats and features Frame data Results Mostly interested in the frame header Finding root causes Contains structural data describing overall file layout: sample rate, number of frames, frame size, channels Collateral damage and Can be multiple types of frame headers in a file future directions Summary What to fuzz it with Introduction Traditional random strings Containers Repeating one random ASCII char to help us spot stack and Codecs pointer overwrites Fuzzing Random unicode, encoded in funny ways Fuzzing Techniques Random signed ints Fuzzing Tools Fuzzbox Case study: Bunch of “%n” format strings to give us some memory Ogg-Vorbis Other formats corruption and features Results Fencepost numbers Finding root causes HTML, more on this later Collateral URLs—for catching URL pingbacks damage and future directions Perhaps other injection types—SQL, XML Summary How to fuzz it Three possible approaches Introduction Reach in and just mangle Containers and Codecs Might work, might not Works a sad amount of the time Fuzzing Fuzzing But, misses a lot of attack classes Techniques Fuzzing Tools Use existing parsing libraries Fuzzbox Case study: Ogg-Vorbis Works well, but usually requires patching the libs Other formats and features Built-in error handling will trip us up Results Metadata editing libraries don’t always allow changing of Finding root data we want causes Use this for basic stuff like ID3 tags and Vorbis comments Collateral damage and Make your own frame parser future directions Sometimes quick and easy, sometimes painful Summary But turns up some great bugs The fuzzer’s toolbox A few tools to make fuzzing and parsing easier Introduction hachoir: Dissects many file types visually Containers and Codecs mutagen: Help in mangling audio tags and understanding Fuzzing Fuzzing file layout Techniques Fuzzing Tools vbindiff: Shows differences between fuzzed and non-fuzzed Fuzzbox Case study: Ogg-Vorbis files Other formats and features bvi: A hex editor with keybindings similar to a certain one Results true editor Finding root causes bbe: sed for binary streams Collateral damage and gdb: Love it or hate it, it’s all you get future directions Summary Fuzzbox A multi-codec audio/video stream fuzzer, written in Introduction Containers Python and Codecs Targets specific stream formats, no general file fuzzing Fuzzing Fuzzing Techniques Uses third party libs like py-vorbis and mutagen for Fuzzing Tools Fuzzbox metadata fuzzing Case study: Ogg-Vorbis Uses built-in frame parsing for frame fuzzing Other formats and features Results Not another fuzzing framework Finding root Just a real-world fuzzer used in pen-testing: quick, dirty causes and targeted Collateral damage and future Available at directions https://www.isecpartners.com/tools.html Summary Fuzzbox Supported filetypes Introduction Containers Ogg and Codecs Fuzzing FLAC Fuzzing Techniques ASF (i.e., WMV, WMA) Fuzzing Tools Fuzzbox Case study: MP3 Ogg-Vorbis Other formats and features Quicktime/MP4 Results Speex Finding root causes WAV Collateral AIFF damage and future directions Summary Case study: Ogg-Vorbis Ogg frame structure Excellent free codec Introduction Well documented Containers and Codecs Not just for hippies Fuzzing Unencumbered status gets it into many things Fuzzing Techniques Fuzzing Tools Consists of an Ogg container. Fuzzbox Case study: Ogg-Vorbis Other formats and features Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Vorbis frame structure Introduction Containers and Codecs Fuzzing . and a Vorbis center Fuzzing Techniques Fuzzing Tools Also “Vorbis comments” Fuzzbox Case study: Simple name/value pairs—can be any length or content, Ogg-Vorbis Other formats but some have special meaning and features Easiest to use existing libs for this—in this case, py-vorbis Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Vorbis comment structure Typical tags used in Vorbis comments: Introduction Containers and Codecs Fuzzing Fuzzing Techniques Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis Other formats and features Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Ogg and Vorbis frame data in Python Mercifully 8-bit aligned—Vorbis portion starts at “12version” Introduction Containers and Codecs Fuzzing Fuzzing Techniques Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis Other formats and features Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Comments and frame data loaded, feed to fuzzer Transforms are defined in randjunk.py: Introduction Containers and Codecs Fuzzing Fuzzing Techniques Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis Other formats and features Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Data fuzzed, writing back out Comments just write back in. Frame data needs to be packed: Introduction Containers and Codecs Fuzzing Fuzzing Techniques Fuzzing Tools Fuzzbox Case study: Ogg-Vorbis Other formats and features Results Finding root causes Collateral damage and future directions Summary Case study: Ogg-Vorbis Fixing the CRC Every Ogg frame has a CRC to prevent corruption. Also hides Introduction
Recommended publications
  • The Kid3 Handbook
    The Kid3 Handbook Software development: Urs Fleisch The Kid3 Handbook 2 Contents 1 Introduction 11 2 Using Kid3 12 2.1 Kid3 features . 12 2.2 Example Usage . 12 3 Command Reference 14 3.1 The GUI Elements . 14 3.1.1 File List . 14 3.1.2 Edit Playlist . 15 3.1.3 Folder List . 15 3.1.4 File . 16 3.1.5 Tag 1 . 17 3.1.6 Tag 2 . 18 3.1.7 Tag 3 . 18 3.1.8 Frame List . 18 3.1.9 Synchronized Lyrics and Event Timing Codes . 21 3.2 The File Menu . 22 3.3 The Edit Menu . 28 3.4 The Tools Menu . 29 3.5 The Settings Menu . 32 3.6 The Help Menu . 37 4 kid3-cli 38 4.1 Commands . 38 4.1.1 Help . 38 4.1.2 Timeout . 38 4.1.3 Quit application . 38 4.1.4 Change folder . 38 4.1.5 Print the filename of the current folder . 39 4.1.6 Folder list . 39 4.1.7 Save the changed files . 39 4.1.8 Select file . 39 4.1.9 Select tag . 40 The Kid3 Handbook 4.1.10 Get tag frame . 40 4.1.11 Set tag frame . 40 4.1.12 Revert . 41 4.1.13 Import from file . 41 4.1.14 Automatic import . 41 4.1.15 Download album cover artwork . 42 4.1.16 Export to file . 42 4.1.17 Create playlist . 42 4.1.18 Apply filename format . 42 4.1.19 Apply tag format .
    [Show full text]
  • Ardour Export Redesign
    Ardour Export Redesign Thorsten Wilms [email protected] Revision 2 2007-07-17 Table of Contents 1 Introduction 4 4.5 Endianness 8 2 Insights From a Survey 4 4.6 Channel Count 8 2.1 Export When? 4 4.7 Mapping Channels 8 2.2 Channel Count 4 4.8 CD Marker Files 9 2.3 Requested File Types 5 4.9 Trimming 9 2.4 Sample Formats and Rates in Use 5 4.10 Filename Conflicts 9 2.5 Wish List 5 4.11 Peaks 10 2.5.1 More than one format at once 5 4.12 Blocking JACK 10 2.5.2 Files per Track / Bus 5 4.13 Does it have to be a dialog? 10 2.5.3 Optionally store timestamps 5 5 Track Export 11 2.6 General Problems 6 6 MIDI 12 3 Feature Requests 6 7 Steps After Exporting 12 3.1 Multichannel 6 7.1 Normalize 12 3.2 Individual Files 6 7.2 Trim silence 13 3.3 Realtime Export 6 7.3 Encode 13 3.4 Range ad File Export History 7 7.4 Tag 13 3.5 Running a Script 7 7.5 Upload 13 3.6 Export Markers as Text 7 7.6 Burn CD / DVD 13 4 The Current Dialog 7 7.7 Backup / Archiving 14 4.1 Time Span Selection 7 7.8 Authoring 14 4.2 Ranges 7 8 Container Formats 14 4.3 File vs Directory Selection 8 8.1 libsndfile, currently offered for Export 14 4.4 Container Types 8 8.2 libsndfile, also interesting 14 8.3 libsndfile, rather exotic 15 12 Specification 18 8.4 Interesting 15 12.1 Core 18 8.4.1 BWF – Broadcast Wave Format 15 12.2 Layout 18 8.4.2 Matroska 15 12.3 Presets 18 8.5 Problematic 15 12.4 Speed 18 8.6 Not of further interest 15 12.5 Time span 19 8.7 Check (Todo) 15 12.6 CD Marker Files 19 9 Encodings 16 12.7 Mapping 19 9.1 Libsndfile supported 16 12.8 Processing 19 9.2 Interesting 16 12.9 Container and Encodings 19 9.3 Problematic 16 12.10 Target Folder 20 9.4 Not of further interest 16 12.11 Filenames 20 10 Container / Encoding Combinations 17 12.12 Multiplication 20 11 Elements 17 12.13 Left out 21 11.1 Input 17 13 Credits 21 11.2 Output 17 14 Todo 22 1 Introduction 4 1 Introduction 2 Insights From a Survey The basic purpose of Ardour's export functionality is I conducted a quick survey on the Linux Audio Users to create mixdowns of multitrack arrangements.
    [Show full text]
  • Rockbox User Manual
    The Rockbox Manual for Sansa Fuze+ rockbox.org October 1, 2013 2 Rockbox http://www.rockbox.org/ Open Source Jukebox Firmware Rockbox and this manual is the collaborative effort of the Rockbox team and its contributors. See the appendix for a complete list of contributors. c 2003-2013 The Rockbox Team and its contributors, c 2004 Christi Alice Scarborough, c 2003 José Maria Garcia-Valdecasas Bernal & Peter Schlenker. Version unknown-131001. Built using pdfLATEX. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sec- tions, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”. The Rockbox manual (version unknown-131001) Sansa Fuze+ Contents 3 Contents 1. Introduction 11 1.1. Welcome..................................... 11 1.2. Getting more help............................... 11 1.3. Naming conventions and marks........................ 12 2. Installation 13 2.1. Before Starting................................. 13 2.2. Installing Rockbox............................... 13 2.2.1. Automated Installation........................ 14 2.2.2. Manual Installation.......................... 15 2.2.3. Bootloader installation from Windows................ 16 2.2.4. Bootloader installation from Mac OS X and Linux......... 17 2.2.5. Finishing the install.......................... 17 2.2.6. Enabling Speech Support (optional)................. 17 2.3. Running Rockbox................................ 18 2.4. Updating Rockbox............................... 18 2.5. Uninstalling Rockbox............................. 18 2.5.1. Automatic Uninstallation....................... 18 2.5.2. Manual Uninstallation......................... 18 2.6. Troubleshooting................................. 18 3. Quick Start 20 3.1.
    [Show full text]
  • Downloading a Resource from Another Server, Looks for Keywords in the Document and Then Searches the Contents for Hyperlinks
    Embedding intelligence in enhanced music mapping agents By MARNITZ CORNELL GRAY DISSERTATION submitted in fulfilment of the requirements for the degree MASTER OF SCIENCE In COMPUTER SCIENCE in the FACULTY OF SCIENCE at the UNIVERSITY OF JOHANNESBURG SUPERVISOR: PROF. E.M. EHLERS SEPTEMBER 2007 Abstract Keywords: Pluggable Intelligence, Intelligent Music Selection Artificial Intelligence has been an increasing focus of study over the past years. Agent technology has emerged as being the preferred model for simulating intelligence [Jen00a]. Focus is now turning to inter-agent communication [Jen00b] and agents that can adapt to changes in their environment. Digital music has been gaining in popularity over the past few years. Devices such as Apple’s iPod have sold millions. These devices have the capability of holding thousands of songs. Managing such a device and selecting a list of songs to play from so many can be a difficult task. This dissertation expands on agent types by creating a new agent type known as the Modifiable Agent. The Modifiable Agent type defines agents which have the ability to modify their intelligence depending on what data they need to analyse. This allows an agent to, for example, change from being a goal based to a learning based agent, or allows an agent to modify the way in which it processes data. Digital music is a growing field with devices such as the Apple iPod revolutionising the industry. These devices can store large amounts of songs and as such, make it very difficult to navigate as they usually don’t include devices such as a mouse or keyboard.
    [Show full text]
  • Freenas® 11.2-U3 User Guide
    FreeNAS® 11.2-U3 User Guide March 2019 Edition FreeNAS® is © 2011-2019 iXsystems FreeNAS® and the FreeNAS® logo are registered trademarks of iXsystems FreeBSD® is a registered trademark of the FreeBSD Foundation Written by users of the FreeNAS® network-attached storage operating system. Version 11.2 Copyright © 2011-2019 iXsystems (https://www.ixsystems.com/) CONTENTS Welcome .............................................................. 8 Typographic Conventions ..................................................... 10 1 Introduction 11 1.1 New Features in 11.2 .................................................... 11 1.1.1 RELEASE-U1 ..................................................... 14 1.1.2 U2 .......................................................... 14 1.1.3 U3 .......................................................... 15 1.2 Path and Name Lengths .................................................. 16 1.3 Hardware Recommendations ............................................... 17 1.3.1 RAM ......................................................... 17 1.3.2 The Operating System Device ........................................... 18 1.3.3 Storage Disks and Controllers ........................................... 18 1.3.4 Network Interfaces ................................................. 19 1.4 Getting Started with ZFS .................................................. 20 2 Installing and Upgrading 21 2.1 Getting FreeNAS® ...................................................... 21 2.2 Preparing the Media ...................................................
    [Show full text]
  • (IETF) T. Terriberry Request for Comments: 7845 Mozilla Corporation Updates: 5334 R
    Internet Engineering Task Force (IETF) T. Terriberry Request for Comments: 7845 Mozilla Corporation Updates: 5334 R. Lee Category: Standards Track Voicetronix ISSN: 2070-1721 R. Giles Mozilla Corporation April 2016 Ogg Encapsulation for the Opus Audio Codec Abstract This document defines the Ogg encapsulation for the Opus interactive speech and audio codec. This allows data encoded in the Opus format to be stored in an Ogg logical bitstream. Status of This Memo This is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7845. Copyright Notice Copyright (c) 2016 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 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.
    [Show full text]
  • Poca Documentation Release 1.1
    poca Documentation Release 1.1 Mads Mide Michelsen Jun 26, 2021 Contents 1 Features 3 2 Interface 5 3 Installation 7 3.1 Requirements...............................................7 4 Quickstart 9 5 Configuration 11 5.1 Settings.................................................. 11 5.2 Subscriptions............................................... 15 6 Running 23 6.1 poca.................................................... 23 6.2 poca-subscribe.............................................. 24 7 Changelog 27 7.1 Version 1.1................................................ 27 7.2 Version 1.0................................................ 28 7.3 Version 0.9................................................ 28 7.4 Version 0.8................................................ 28 7.5 Version 0.7................................................ 28 7.6 Version 0.6................................................ 29 7.7 Version 0.5................................................ 29 7.8 Version 0.4................................................ 29 8 Links 31 i ii poca Documentation, Release 1.1 Poca is a fast, multithreaded and highly customizable command line podcast client, written in Python 3. Contents • Poca – Features – Interface – Installation – Quickstart – Configuration – Running – Changelog – Links Contents 1 poca Documentation, Release 1.1 2 Contents CHAPTER 1 Features • Maximum amount. Specify how many episodes the subscription should get before deleting old episodes to make room for new ones. • Override ID3/Vorbis metadata. If you want Savage Love to have Dan Savage in the artist field (rather than The Stranger), poca will automatically update the metadata upon download of each new episode. Or set genre to be overwritten by Podcast as a default. • Filter a feed. Only want news reports in the morning or on Wednesdays? Use criteria such as filename and title, or the hour, weekday or date of publishing to filter what you want from a feed. • Rename files automatically. Not all feeds have sensibly named media files.
    [Show full text]
  • Roaraudio Manual
    RoarAudio Manual Philipp ”ph3-der-loewe” Schafft et al. August 13, 2010 Contents Contens 6 I Introduction 7 1 What is RoarAudio? 8 1.1 What is a Sound Server? ....................... 8 1.2 What are the key fatures of RoarAudio? .............. 8 2 Basic concept 10 II Quickstart 11 3 Installation 12 3.1 archlinux ............................... 12 3.2 OpenBSD ............................... 13 3.3 Debian ................................. 13 3.4 From Sources ............................. 14 4 Configuring 15 4.1 archlinux ............................... 15 4.2 OpenBSD ............................... 15 4.3 Debian ................................. 15 4.3.1 Options ............................ 15 5 Setting up a player 17 5.1 XMMS ................................. 17 5.2 libao based .............................. 17 5.3 Other ................................. 17 III User Manual 18 6 RoarAudio’s Architecture 19 6.1 Subsystems .............................. 19 6.2 Clients ................................. 19 6.3 Streams ................................ 19 6.3.1 Stream Types ......................... 20 6.3.2 Stream Flags ......................... 22 1 CONTENTS 2 6.4 Driver ................................. 24 6.5 Sources ................................ 24 6.6 Codecfilter ............................... 24 6.7 Bridges ................................ 24 7 Playing music on command lion with RoarAudio 25 7.1 roarcatplay .............................. 25 7.2 roarvorbis ............................... 25 7.3 roarradio ..............................
    [Show full text]
  • Exposing Vulnerabilities in Media Software Fuzzbox Fuzzing Techniques Case Study: Ogg-Vorbis Other Formats David Thiel, Isec Partners and Features Fallout
    Introduction Overview Containers and Codecs Exposing Vulnerabilities in Media Software Fuzzbox Fuzzing Techniques Case study: Ogg-Vorbis Other formats David Thiel, iSEC Partners and features Fallout Finding root causes BlackHat EU 2008 Collateral damage and future directions Summary Agenda 1 Introduction Introduction 2 Overview Overview Containers 3 and Codecs Containers and Codecs Fuzzbox Fuzzing 4 Fuzzbox Techniques Case study: Fuzzing Techniques Ogg-Vorbis Other formats and features Case study: Ogg-Vorbis Fallout Other formats and features Finding root causes 5 Fallout Collateral damage and future 6 Finding root causes directions Summary 7 Collateral damage and future directions Introduction Hello Introduction I’m a consultant and researcher with iSEC Partners Overview Focus on application security Containers Audio hobbyist and Codecs What’s this all about? Fuzzbox Fuzzing The attack surface and potential of media codecs, players Techniques Case study: and related devices Ogg-Vorbis Other formats Focus here is on slightly on audio, but that doesn’t matter and features Video works the same way, and uses the same container Fallout formats Finding root causes Takeaways Collateral damage and Understand attack surface and implications future Understand how to fuzz and design fuzzers for media directions Help developers understand how to improve code Summary Plant ideas for future research Why this matters Omnipresent and always on Promiscuously shared, played, streamed Introduction Comes from extremely untrusted, often anonymous sources
    [Show full text]
  • Manipuler Les Tags Des Fichiers Ogg Et FLAC
    LUMINESCENCE SOFTWARE Manipuler les tags des fichiers Ogg et FLAC Lisez et écrivez les tags des fichiers Ogg Vorbis, FLAC et Speex, à l’aide de l’assemblage Luminescence.Xiph Sylvain Rougeaux 25/04/2009 L’assemblage Luminescence.Xiph permet la lecture et l’écriture des tags au format Vorbis Comment dans les fichiers Ogg Vorbis, Ogg FLAC, FLAC natif et Speex. Les sources C# 3 sont sous LGPL. Manipuler les tags des fichiers Ogg et FLAC Developpez.com Sommaire Introduction ............................................................................................................................................. 3 Un peu de théorie ................................................................................................................................... 3 Le format de tags des fichiers Ogg et FLAC natifs : Vorbis Comment ................................................. 3 Le support des tags binaires ................................................................................................................ 4 L’implémentation du standard Vorbis Comment .................................................................................... 4 La lecture des tags textuels ................................................................................................................. 4 La prise en charge des tags « images » ............................................................................................... 6 La lecture des informations techniques .............................................................................................
    [Show full text]
  • Name Synopsis Description Options
    opusenc(1) opus-tools opusenc(1) NAME opusenc − encode audio into the Opus format SYNOPSIS opusenc [ -h ][-V ][--help-picture ][--quiet ][--bitrate kbit/sec ][--vbr ][--cvbr ][--hard-cbr ][ --comp complexity ][--framesize 2.5, 5, 10, 20, 40, 60 ][--expect-loss pct ][--downmix-mono ][ --downmix-stereo ][--max-delay ms ][--title ’track title’ ][--artist author ][--album ’album title’ ][ --genre genre ][--date YYYY-MM-DD ][--comment tag=value ][--picture filename|specification ][ --padding n ][--discard-comments ][--discard-pictures ][--raw ][--raw-bits bits/sample ][--raw- rate Hz ][--raw-chan N ][--raw-endianness flag ][--ignorelength ][--serial serial number ][--save- range file ][--set-ctl-int ctl=value ] input.wav output.opus DESCRIPTION opusenc reads audio data in Wav e,AIFF,FLAC, Ogg/FLAC, or rawPCM format and encodes it into an Ogg Opus stream. If the input file is "-" audio data is read from stdin. Likewise, if the output file is "-" the Ogg Opus stream is written to stdout. Unless quieted opusenc displays fancystatistics about the encoding progress. OPTIONS General options -h, --help Showcommand help -V,--version Showthe version number --help-picture Showhelp on attaching album art --quiet Enable quiet mode. No messages are displayed. Encoding options --bitrate N.nnn Set target bitrate in kbit/sec (6-256 per channel) In VBR mode this specifies the average rate for a large and diverse collection of audio. In CVBR and Hard-CBR mode it specifies the specific output bitrate. Default for >=44.1kHz input is 64kbps per mono stream, 96kbps per coupled pair. --vbr Use variable bitrate encoding (default) In VBR mode the bitrate may go up and down freely de- pending on the content to achieve more consistent quality.
    [Show full text]
  • FLAC Format Assessment
    Digital Date: 18/01/2018 Preservation Assessment: Preservation FLAC Format Preservation Assessment Team Version: 1.00 FLAC Format Preservation Assessment Document History Date Version Author(s) Circulation Simon Whibley, 08/02/2017 0.91 Michael Day, Initial internal release David Russo Simon Whibley, 09/11/2017 0.95 David Russo, Internal release Tom Ruane 18/01/2018 1.0 David Russo External release British Library Digital Preservation Team [email protected] This work is licensed under the Creative Commons Attribution 4.0 International License. Page 1 of 11 Digital Date: 18/01/2018 Preservation Assessment: Preservation FLAC Format Preservation Assessment Team Version: 1.00 1. Introduction This document provides a high level, non-collection specific assessment of the FLAC file format with regard to preservation risks and the practicalities of preserving data in this format. This format assessment is one of a series of assessments carried out by the British Library’s Digital Preservation Team. An explanation of the criteria used in this assessment is provided in the italics below each heading. 1.1 Scope This document will focus on the FLAC (Free Lossless Audio Codec) format. Note that this assessment considers format issues only, and does not explore other factors essential to a preservation planning exercise, such as collection specific characteristics, that should always be considered before implementing preservation actions. 1.2 Summary FLAC is a non-proprietary, open source audio file format standard designed for the lossless compression of digital audio [1]. It is specifically designed for compression of linear pulse-code modulation (LPCM) audio data, “with many of its default parameters tuned to CD-quality music data.” [2] FLAC is in some ways similar to MP3, but uses lossless compression, meaning that while the audio stream is compressed, it suffers no loss in quality.
    [Show full text]