All Projects β†’ roman380 β†’ gdcl.co.uk-mpeg4

roman380 / gdcl.co.uk-mpeg4

Licence: other
DirectShow MPEG-4 Part 14 (.MP4) Multiplexer and Demultiplexer Filters

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
powershell
5483 projects

Projects that are alternatives of or similar to gdcl.co.uk-mpeg4

mp4
πŸŽ₯ Basic MP4 reader in Go! CLI + Golang Package for ISO/IEC 14496-12 - ISO Base Media File Format
Stars: ✭ 75 (+177.78%)
Mutual labels:  mp4, mpeg-4
isobmff
Official repository of the ISO Base Media File Format Reference Software
Stars: ✭ 75 (+177.78%)
Mutual labels:  mp4, mpeg-4
Ffmediatoolkit
FFMediaToolkit is a cross-platform video decoder/encoder library for .NET that uses FFmpeg native libraries. It supports video frames extraction, reading stream metadata and creating videos from bitmaps in any format supported by FFmpeg.
Stars: ✭ 156 (+477.78%)
Mutual labels:  mp4
Swiftffmpeg
A Swift wrapper for the FFmpeg API
Stars: ✭ 243 (+800%)
Mutual labels:  mp4
Media Stream Library Js
JavaScript library to handle media streams on the command line (Node.js) and in the browser.
Stars: ✭ 192 (+611.11%)
Mutual labels:  mp4
Mediasdk
The library is working for downloading video while playing the video, the video contains M3U8/MP4
Stars: ✭ 164 (+507.41%)
Mutual labels:  mp4
Gallery shell
πŸ“· Bash Script to generate static responsive image web galleries.
Stars: ✭ 198 (+633.33%)
Mutual labels:  mp4
Fastflix
FastFlix is a free GUI for HEVC and AV1 encoding, GIF/WebP creation, and more!
Stars: ✭ 154 (+470.37%)
Mutual labels:  mp4
BAT FFMPEG
Batch script files for FFMPEG (Microsoft Windows and DOS, OS/2 πŸ¦„)
Stars: ✭ 104 (+285.19%)
Mutual labels:  mp4
Griffith
A React-based web video player
Stars: ✭ 2,287 (+8370.37%)
Mutual labels:  mp4
Tageditor
A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska
Stars: ✭ 229 (+748.15%)
Mutual labels:  mp4
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (+566.67%)
Mutual labels:  mp4
Minimp4
Minimalistic MP4 mux/demux single header library
Stars: ✭ 169 (+525.93%)
Mutual labels:  mp4
Chimee
a video player framework aims to bring wonderful experience on browser
Stars: ✭ 2,332 (+8537.04%)
Mutual labels:  mp4
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (+485.19%)
Mutual labels:  mp4
node-m3u8-to-mp4
convert m3u8 to mp4
Stars: ✭ 38 (+40.74%)
Mutual labels:  mp4
Isobmff
C++ Library for ISO/IEC 14496-12 - ISO Base Media File Format (QuickTime, MPEG-4, HEIF, etc)
Stars: ✭ 157 (+481.48%)
Mutual labels:  mp4
Audioplayer
Audio Player for Nextcloud and ownCloud
Stars: ✭ 179 (+562.96%)
Mutual labels:  mp4
Symphonia
Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Stars: ✭ 191 (+607.41%)
Mutual labels:  mp4
vscode-mediaplayer
Mediaplayer extention for VS Code
Stars: ✭ 18 (-33.33%)
Mutual labels:  mp4

DirectShow MPEG-4 Part 14 (.MP4) Multiplexer and Demultiplexer Filters

These are based on filters by Geraint Davies (info at gdcl dot co dot uk) enhanced by Roman Ryltsov (roman at alax dot info).

The repository contains pre-built DLLs here, as well as DLLs packaged into installer.

Build Notes

In order to successfully build the solution/projects, baseclasses directory from Windows SDK needs to be copied as a subdirectory in solution file directory.

Current version of the project is supposed to be built by Visual Studio 2019. It should be fairly easy to build with earlier versions of toolset as well.

You will need to clone https://github.com/roman380/Windows-classic-samples.git at directshow branch into directory Windows-classic-samples at the same level as this repository directory.

Update History

Jun 2015 - Jan 2020

Sporadic updates (see commit and issue history for details), including:

  • added support for MP3 audio track within MP4 file (in multiplexer)
  • stability improvements
  • installer

If you are interested, you might also check out branches that might hold long going changes in progress.

05 Jun 2015

  • merged update by NoΓ«l Danjou (added handlers for: MPEG-2 Video and Audio, Dolby Digital (AC-3), Dolby Digital Plus (Enhanced AC-3); added support for FORMAT_UVCH264Video)
  • minor updates

17 May 2015

  • Fixed problem in multiplexer with stts/stsz atom discrepancy; produced files could be rejected by MainConcept demultiplexer and GDCL demultiplexer would produce final sample on the track with incorrect zero timestamp

08 May 2015

  • Projects converted to Visual Studio 2013, stripped older solution/project files; using Windows XP compatible toolset
  • Added type libraries with coclasses (esp. to enable #import against built binaries and automation of registration free COM)
  • Demultiplexer:
  • Added ability to restart streaming without re-creation of thread, esp. to speed up seeking in scrubbing mode
  • Added support for edit entries (elst atom and related) (*)
  • Added AsyncRequestor code, which is not used/disabled (*)
  • Added attempt to normalize video frame rate (*)
  • Added (extended) ability to store raw/uncompressed video in MP4 container, such as UYVY, RGB video; this might be lacking compatibility but can be used for temporary storage
  • Added implementation to handle AM_SEEKING_SeekToKeyFrame and AM_SEEKING_ReturnTime flags when seeking
  • Added private interface and method IDemuxOutputPin::GetMediaSampleTimes to quickly read track/stream media sample times without loading actual data
  • Fixed problem with stream times set off (by small amount) after seeking
  • Multiplexer:
  • Time scale changed from 90 kHz to 360 kHz to add precision to 59.94 fps timings
  • Added capability to create temporary index file as multiplexer writes, in order to be able to recover aborted/crashed session using broken .MP4 file and the index file
  • Added IMuxMemAllocator interface with ability to (a) identify copy allocator, (b) reduce minimal forced amount of buffers on copy allocator
  • Added IMuxInputPin::GetMemAllocators to access public and internal memory allocators
  • Fixed problem with input samples without stop time
  • Safer MuxInput::GetAllocator implementation, fixing memory leak and avoiding unnecessary allocator construction
  • Improved support for raw video media types, added support for HDYC code

(*) Geraint's unpublished updates


Free DirectShow Mpeg-4 Filters

The GDCL Mpeg-4 Demultiplexor and Multiplexor filters are now freely available for download in source form. You can re-use them in your projects, commercial or otherwise (provided that you don’t pretend that you wrote them) or use them as sample code when starting on your own project. Of course support and documentation are somewhat limited.

This initial release is being made available because of the insolvency of a customer. As I get time, I intend to enhance these filters. For now, they support ISO Mpeg-4 files containing Mpeg-4 and H.264 video and a variety of audio formats. The files created by the multiplexor will work with QuickTime and the iPod.

Note: both mux and demux filters need a small amount of code added for each media type that is to be supported. So far I have only added a limited set of types. If you need other types to be accepted, please get in touch directly. It’s likely that only a few lines of code will be needed.

Published: September 2006. Latest Update: May 2013.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].