Obtaining MP3 Audio Compression Library - audio

I would like to find out where I would be able to find the MP3 library, for implementation in an Operating System.

Are you looking for Lame?

One note: MP3 encoding is covered by patents held by the Fraunhofer Institute and Thomson Multimedia. If the Operating System you are working on is more than just a hobby for your own use, you should think about patent issues and licensing.

If you want an officially-licensed MP3 library, you probably ought to contact Thompson, who are handling patent licensing for Fraunhofer.

Related

Is Opus supported for VoLTE?

There are so many different codecs for phone calls and many of them have very high license fees, meaning it will take a lot of time before everyone can use normal telephony with wide band audio.
Is Opus supported for VoLTE?
The usual codecs for VoLTE are AMR, AMR-WB and EVS (see links below for more info - thanks, #Mikael DĂși Bolinder).
As with most mainstream voice (and video codecs) there is IPR and licensing associate with these. However, for end users the network providers and device manufacturers have included the licensing and the codecs in their rollouts so a typical operator service will use these.
I'm not aware of any restrictions from 3GPP on using other codecs if the devices and the network support them, but the above are definitely the default and the most widely used.
If you want to create your own voice service, e.g a VoIP service running over the data connection to the phone, then in theory you can use whatever codec you want. It's worth being aware that for software based codecs, which they will be unless they are tightly integrated in the device's hardware, the efficiency is important as an inefficient implementation may impact performance, battery life etc.
For Opus in particular there are several open source projects which provide Android libraries for this, for example. Opus is also supposed to be supported on devices from Android 5+ (https://developer.android.com/guide/topics/media/media-formats).
amr-licensing-wikipedia: https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues "AMR licensing (and issues) on Wikipedia"
amr-wb-licensing-wikipedia: https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_Wideband#Licensing "AMR-WB licensing on Wikipedia"
evs-news-patent-pool: http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/97/n-16-01-20.pdf "MPEG developing a patent pool for EVS"

How to apply DRM on a .mp3/.wav file

Can anyone help me to apply DRM on .mp3 or .wav. I know about DRM, but i have no idea about it's implementation process. If anyone has any idea on DRM's implementation(for .mp3/.wav) pleae help me. It would be great if this is for C#. It would be nice if any of you give me some Source/link.
Thanks
Pranab
To DRM any sort of file, all you are really doing is encrypting it in such a way that only authorized clients (programs) can retrieve the content from the file. Typically, this requires special client software. Depending on your requirements, it may also require a central server for these clients to call back to.
In general, you cannot simple "DRM an .mp3", because a generic MP3 player cannot read the data then. (if it could, it wouldn't be a DRMed file then, now would it?)
Possible, yes. Easy, not so much:
The "easiest" way is to drop the MP3 or WAV requirement and go with WMA (Windows Media Audio). In that case, you could use the Microsoft PlayReady Server SDK (expensive - several tens of thousand $) to do Windows Media DRM-compatible encryption. The resulting encrypted WMA can then be played by Windows Media Player and by a very large number of portable devices, after having received a "license" (essentially, decryption key + usage rights).
If you decide to go with WMA and you can't do large upfront investments, perhaps a hosted (SaaS) solution such as BuyDRM is for you.
Another possibility, which requires an even larger investment, if you want to stick with MP3 or WAV, is to use PlayReady itself with the "Envelope" format, or OMA 2 DRM with the "DCF" format, or Marlin DRM, or several other ones, which in addition to investing on the server side would also require you to write a custom media player.

Low level audio programming

I wonder; does audio software like Cubase and Audacity use PlaySound calls??
Where can I learn about low level audio programming? As far as I've found information on the web, MCI seems to be the lowest level audio API in Windows...
Thanks
Edit: I don't ask for information specific for Windows only.
There's several audio APIs to choose from. The oldest and most widely supported is the waveOut API - look for functions starting with waveOut in MSDN. A slightly newer one is DirectSound which is geared more towards games, but it's main feature over waveOut is positional 3D sound which professional audio software doesn't use (it was also supposed to have lower latency than waveOut, but that never really materialized). For low latency audio, there is ASIO. Professional audio apps support this API, but not all drivers do (it's a standard feature in professional sound cards, but not gaming or on-board hardware). ASIO can provide much lower latency than waveOut or DirectSound. Finally, there's the kernel streaming interface, which is the lowest-level audio interface still accessible from user-mode code. This is a direct pipe into Windows's internal mixer which combines output from all apps that are currently playing sound into the signal that gets sent to the sound card. It's scarcely documented though. There's a driver called ASIO4ALL (just google it) that provides ASIO support on soundcards without ASIO drivers by implementing the ASIO API on top of the kernel streaming interface.
I'm a little late to the game here, but I posted a Windows API history last week that might add a little more context. The choice of API really depends on your needs. If you want to avoid 3rd party libraries, it really only comes down to MME, XAudio2, and Core Audio (WASAPI).
A Brief History of Windows Audio APIs
Hope this helps!
Actually, if you are looking for more than Windows-only output support, then the best way to start is to review Phil Burk's PortAudio, available as of this writing at http://www.portaudio.com/ .
ASIO is a good quality interface, but it's proprietary and owned by Steinberg.
There are many lower-level interfaces to audio output than MCI in modern Windows. These include, at least, DirectSound, XAudio and WASAPI.
I recommend avoiding the Windows APIs as much as possible, and learning PortAudio instead.

HTML5 audio codecs, support for other formats besides OGG

I started tinkering around with HTML5 recently and am very interested in Audio tag. Though one thing immediately came to my attention, it appears that OGG is the only format supported in Firefox!
I understand that this is because MP3 and other codecs are proprietary software and require a license to use. But how is HTML5 Audio (and Video) going to catch on if you can only use OGG?? Like it or not the world is currently hooked to MP3 or Apple's AAC.
And to further hinder things it seems that Mozilla is all for only natively supporting OGG.
So I'm curious. Why can't Firefox, and other browsers, use System installed codecs for playing media? Why do they have to be installed into the browser, or depend on technologies like Flash? It just seems like bad design to me.
Perhaps, I'm just naive about this, but this whole codec war is just a nuisance. Can anyone point me to information, laws, and other information regarding why browsers can't use system installed codecs? I would also like to hear other users opinions about this as well. Thanks!
Edit In case this comes off as not being a programming question, I want to clarify that to me this issue directly affects web programmers. For example, in the case of audio support, do we have to use flash? or will these issues eventually be handled in HTML5. Where does it seem that things are going, technology-wise, in regards to this issue?
The <object> or <embed> tag could be used to reference any media, and allowed to transcend the browser for handling. The purpose of HTML5's media is to somewhat standardize a common encoding (lowest common denominator if you will) across platforms and have a browser-native player. The Ogg container and various encodings make perfect sense.

How to Play Audio On Your Website PHP / Flash?

I'm just wondering how, and which audio player I should use to allow my visitors to play audio files on my website.
Thanks!
I use a flash-based player cleverly called "MP3 Player". Nice looking and easy to use (and free!)
Flash is the most widely available platform capable of playing sounds in a web page. It is highly likely that flash is already installed in their browser.
http://kb2.adobe.com/cps/156/tn_15660.html

Resources