Comments (4)
Eventually it will as shown in the TODO as I get to it. I actually have a partial MP4 implementation locally. The MP4 format is definitely a pain to implement compared the formats already implemented. It's also the one I was (and still am) least familiar with; I already knew FLAC, MP3, ID3, WAV specs rather well before I started. Things got delayed further because I really couldn't sit down to program long enough for a couple months due to a severe trapezius strain.
Hopefully I'll get back to making some progress on it soon. Of course, if anyone sees this and wants to help speed things along, let me know.
PS Thanks for the kind words. I think reading from memory is definitely something that just makes sense. I'm a bit baffled that it's not really part of other such libraries.
from audio-metadata.
Just an FYI... about a week after you opened this issue, I actually had a strong enough urge to break past the huge slog and finally finish at good portion of MP4 support.
>>> audio_metadata.load('test.m4a')
<MP4 ({
'filepath': 'C:\\Projects\\thebigmunch\\audio-metadata-test\\test.m4a',
'filesize': '9.21 MiB',
'pictures': [],
'streaminfo': <MP4StreamInfo ({
'bit_depth': 16,
'bitrate': '361 Kbps',
'channels': 2,
'codec': 'mp4a',
'codec_description': 'AAC LC',
'duration': '03:33',
'sample_rate': '44.1 KHz',
})>,
'tags': <MP4Tags ({
'album': ['Sidewalks'],
'artist': ['Matt & Kim'],
'date': ['2010'],
'encodedby': [
'qaac 2.17, CoreAudioToolbox 7.10.7.0, AAC-LC Encoder, TVBR q127, Quality 96',
],
'genre_id3': ['\x00\x12'],
'title': ['Cameras'],
'tracknumber': ['3/10'],
})>,
})>
>>> audio_metadata.load('test-lossless.m4a')
<MP4 ({
'filepath': 'C:\\Projects\\thebigmunch\\audio-metadata-test\\test-lossless.m4a',
'filesize': '27.11 MiB',
'pictures': [],
'streaminfo': <MP4StreamInfo ({
'bit_depth': 16,
'bitrate': '1069 Kbps',
'channels': 2,
'codec': 'alac',
'codec_description': 'ALAC',
'duration': '03:33',
'sample_rate': '44.1 KHz',
})>,
'tags': <MP4Tags ({
'album': ['Sidewalks'],
'artist': ['Matt & Kim'],
'date': ['2010'],
'encodedby': [
'qaac 2.17, CoreAudioToolbox 7.10.7.0, Apple Lossless Encoder',
],
'genre_id3': ['\x00\x12'],
'title': ['Cameras'],
'tracknumber': ['3/10'],
})>,
})>
Still got a bit to go before I'd release it. And it definitely won't cover 100% of MP4 files on first release. But it should handle most MP4 files just fine. So progress is actually happening : P
from audio-metadata.
Nice! I don't mind helping you out with the more obscure audio formats.
from audio-metadata.
See #14.
from audio-metadata.
Related Issues (20)
- Add Ogg Vorbis load(s) support
- Achieve 100% test coverage
- Better support Ogg files with multiple streams
- Add support for common non-standard ID3v2 frames HOT 2
- Class loading/dumping method naming
- Docs, docs, and more docs HOT 1
- Handle frame flags and unsynchronization in ID3v2
- Add ability to modify/save FLAC
- Add ability to modify/save MP3
- Add ability to modify/save WAV
- Add ability to modify/save Ogg Opus
- Add ability to modify/save Ogg Vorbis
- Add ability to modify/save MP4
- Invalid duration for wav files HOT 1
- frame_data.split(b'\x00') may return more than two values HOT 1
- Add __*attr__ methods to Tags class
- Handle ValueError: year 0 is out of range HOT 1
- Docs: Why? HOT 1
- audio_Metadata.load() hangs forever with some MP3 files.
- Block Size 0 doesn't always mean an invalid flac file, so ignore rather than fail.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from audio-metadata.