Header-only simple&limited MOV (Apple QuickTime Movie) loader in C++.
- Opening existing MOV files
- Editing opened MOV info before writing
- Writing new MOV files (remuxing)
- Runtime handler support for chunk data
- Runtime handler support for video sample description
- Some MOV info is supported
- Tracks info
- Track media info
- Type (Audio/Video/Timecode/...)
- Chunk offsets in MOV file
- Sample sizes in MOV file
- Sample-to-Chunk info
- Time-to-Sample info
- Sample Description Extensions
- zraw
- Track media info
- Metadata info
- Tracks info
- Atoms supported for reading/writing (not checked - skipped for now):
- ftyp
- jpeg
- RECO
- free
- moov
- mvhd
- trak
- tkhd
- edts
- tref
- mdia
- mdhd
- hdlr
- minf
- vmhd (for video)
- smhd (for audio)
- gmhd (for timecode)
- gmin
- tcmd
- tcmi
- hdlr
- dinf
- dref
- stbl
- stsd
- stts
- stss
- sdtp
- stsc
- stsz
- stco
- meta
- hdlr
- keys
- mdta
- ilst
- udta
- wide
- mdat
#include "TinyMovFileReader.hpp"
int main()
{
// Create temporary reader
TinyMovFileReader reader;
// Here file is opened, parsed to abstractions and closed
auto mov = reader.OpenMovFile("./example_0_93.ZRAW");
// Show tracks count
std::cout << "Tracks: " << mov.Tracks().size() << std::endl;
// Process tracks
for (int i = 0; i < mov.Tracks().size(); ++i)
{
auto& track = mov.Tracks()[i];
// ... (here you do any stuff with tracks)
}
return 0;
}
- QuickTime File Format Specification - https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html
- QuickTime File Format Specification - https://wikileaks.org/sony/docs/05/docs/Apple/qtff.pdf
- ".ZRAW" encrypted MOV files support
- Improve MOV reader
- Support more atoms
- Support Big MOV (4GB+)
- MOV writer
- Allow MOV file repack (MOV -> TinyMovReader -> TinyMovWriter -> MOV)
TinyMovFileReader is licensed under MIT license.