Convert .m4p to non-DRM format (mp3, ogg) - linux

Do you know how to convert a .m4p file (DRM quicktime) to mp3 or ogg without using expensive software (AKA with scripting) and possibly on Linux?

There is no good method for decrypting encrypted DRM quicktime files in linux. You can probably play them with quicktime via wine (just a guess), but to save them to a different format would probably be difficult. (though thinking out loud, I wonder if it be possible to have an alsa plugin that dumps every stream of audio it gets to a file as well?)

Related

How can I apply audio compression to an MP4 file?

I am using moviepy to generate MP4 files from sets of shorter clips, each with their own audio. The problem is that the resulting MP4 often has a very high dynamic range from one clip to the next and I would like to apply audio compression to make it easier on the ears. In Google I can only find results about audio information compression, but not about audio compression from the audio engineering perspective.
I would like to know if there is some way of doing this with moviepy, or with some other library. I have no issue with invoking (non interactive) command line utilities either.
Thank you.

Recording steganographed audio

Using echo hiding or phase coding is it possible to encode a file wav file, play it, and decode the recorded version of the file without losing info? If its not possible with this techniques, are there other other ones that you would recommend to be able to do so?

Audio reading library for Mono

I'm trying to work with raw audio data for manipulation and playback with OpenAL. So far everything works nice and dandy since I've written my own .wav file reader and have been working with that. However, my goal is for people to import their own music. This implies that my program should support various audio formats and codecs, including atleast MP3, Ogg and FLAC.
Now unlike reading a .wav file, the other formats aren't as straightforward. Now I could possibly write my own readers and / or use wrappers of various existing libraries such as libsnd and the ogg library, but I'd rather not reinvent the wheel. So my question is: is there a library already that allows fetching the raw byte audio data from various formats in Mono?
I've taken a look at NAudio, but it's highly dependant on various Win32 API calls, which is a no-go for me as I intend to make my program multi-platform. At the moment I only care about getting the data for reading and playback purposes, I do not intend to manipulate, mix, or any other kind of computational work.
EDIT:
One important factor I forgot was licensing. I'd prefer an MIT based licensing or other open license that allow me to use the library for free in commercial software. The BASS.Net library for example is out of the question, as licensing the library is out of my budget.
EDIT2:
irrKlang does not support Mono.
After giving NAudio another try, I have noticed that they removed some dependencies on the Win32 API. I can now successfully load WAV files through Mono, and there are extensions available that support FLAC and OGG. MP3 support seems to work only for Windows due licensing issues, but that's okay.

Converting Audio From Unknown Format

I would like to create a utility in either PHP or Perl to convert an audio file created by the Nortel's Callpilot voice mail system into a wave file. The problem is that the format, which has the .vbk file extension, is unknown to virtually any audio player. To date, I have not found one that will play a .vbk file. I've looked at audio file conversion libraries in CPAN and tried many of them, they don't recognize the file. I was not successful with PHP's audio formats manipulation either. Nortel does provide a converter, however, it does not suite my needs. I would like to have this run via cron on a CentOS system. I don't know how to reverse engineer this format. There seems to be just scraps of info on this format on the web. This page indicates that it is "based on the H.232 format":
https://www.odesk.com/o/jobs/job/Reverse-Engineer-Nortel-VBK-Audio-Format_~~f501f11679f3f6bb/
I know this is a very old thread, but I've recently been looking into converting Nortel's vbk format as well. Importing the vbk files into Audacity with raw data option, Encoding: U-Law, Byte order: little-endian, Channels: 1 Channel (Mono), Sample rate: 8000 Hz. Not sure if they have multiple formats for their vbk files, but mine were from a BCM50 phone system.
Well, this is the joy of closed proprietary systems. But there is a chance they could play nice. Try to contact Callpilot and see if they'll give you the format specs. It's worth a shot.
As for reverse engineering, you need to be able to generate known content. Like a constant tone at 60Hz for exactly 1 second. Then at 50Hz. Then at 10 seconds. Compare them. Isolate the data from the metadata. There is going to be compression involved, so try a handful of common compression schemes, maybe research into Nortel's practices will probably tell you more. If you can feed that into a player and get a tone back out, you're on your way.
There's probably more informed and structured ways to go about reverse engineering, but from my experience it's a lot of trial and error.

How do I create an mp4 file from a collection of H.264 frames and audio frames?

I have a program that captures and stores H.264 encoded video as well as audio into a proprietary format file. I need to be able to export that video and audio to an mp4 file. I prefer C# but will use C++ if necessary. Any suggestions?
To produce MPEG-4 Part 14 .MP4 file you need a multiplexer. There is a choice of multiplexers out there:
FFmpeg (libavformat)
DirectShow filters (free and open source from GDCL, commercial)
Windows 7+ Media Foundation file sink
API and complexity might vary because some of multiplexers are expected to be a part of pipeline, they are not completely standalone classes. You might want to check respective samples (and license agreements, perhaps, too) to see what is best for you.
Take a look at libmp4v2. Fairly straightforward to use..
http://code.google.com/p/mp4v2/

Resources