https://github.com/voximplant/zmkv
Helper library for creating mkv files
https://github.com/voximplant/zmkv
voximplant
Last synced: 12 days ago
JSON representation
Helper library for creating mkv files
- Host: GitHub
- URL: https://github.com/voximplant/zmkv
- Owner: voximplant
- License: mit
- Created: 2015-11-20T06:07:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-20T07:33:34.000Z (over 9 years ago)
- Last Synced: 2025-05-08T22:57:31.871Z (12 days ago)
- Topics: voximplant
- Language: C++
- Homepage:
- Size: 21.5 KB
- Stars: 16
- Watchers: 6
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# zmkv
Helper library for creating mkv filesPredefined A/V formats:
VP8,H264,OPUS,PCM,PCMA,PCMU,G729,SPEEX
Can be easily extended for any new format
# How to use
1. Library located in namespace ZMKV:
```cpp
using namespace ZMKV;
```
2. Create file writer, you can use default or make custom writer class derived from: MuxerIOWriterCallback```cpp
MuxerIOWriterCallbackDefault muxerIOWriterCallbackDefault("./test.mkv");
```
3. Create muxer:```cpp
Muxer muxer(muxerIOWriterCallbackDefault);
```
4. Create tracks:
```cpp
AudioCodecInfoACM audioCodecInfoACM(8000, 16, 1, ZMKV::wFormatTag::PCM);
AudioTrack audioTrack(muxer, audioCodecInfoACM, 0, 12345678);VideoCodecInfoH264 videoCodecInfoH264(320,240);
videoCodecInfoH264.AddPPS(sps,sizeof(sps));
videoCodecInfoH264.AddPPS(pps,sizeof(pps));
VideoTrack videoTrack(muxer,videoCodecInfoH264,1,87654321);
```
5. Fill tracks:
```cpp
...
audioTrack.AddFrame(audioTimeStamp, 0, audio_buf, sizeof(audio_buf));
videoTrack.AddFrame(videoTimeStamp, isKeyFrame, video_buf, sizeof(video_buf));
...
```
6. Thats all!# How to build on Ubuntu linux
```bash
apt-get update
apt-get install git cmake gcc g++apt-get install libmatroska-dev
mkdir work_dir
cd work_dir
git clone https://github.com/voximplant/zmkv.git
mkdir build
cd build
cmake ../zmkv
make -j8```