{"id":2300,"date":"2024-03-25T10:00:00","date_gmt":"2024-03-25T09:00:00","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=2300"},"modified":"2024-03-30T15:12:09","modified_gmt":"2024-03-30T14:12:09","slug":"legacy-filters-modern-solutions-mp4-support-in-directshow","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/2300","title":{"rendered":"Legacy Filters, Modern Solutions: MP4 Support in DirectShow"},"content":{"rendered":"<p><iframe loading=\"lazy\" src=\"https:\/\/www.linkedin.com\/embed\/feed\/update\/urn:li:share:7175241297018961926\" height=\"936\" width=\"504\" frameborder=\"0\" allowfullscreen=\"\" title=\"Embedded post\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft #DirectShow API was introduced long before the widespread adoption of MPEG-4. As MPEG-4 codecs and container formats became standard, DirectShow was, by Microsoft\u2019s own admission, nearing the end of its life.<\/p>\n<p>That\u2019s how this once-popular media framework for Windows found itself without support for MP4 files. Fortunately, there was a handy solution: freely available filters https:\/\/gdcl.co.uk\/mpeg4\/ developed by Geraint Davies. Originally published in 2006, these filters gained popularity over time. Since Geraint had other commitments after the last update, we took the liberty of placing a copy of his work on GitHub https:\/\/lnkd.in\/dPsZEfpE somewhere around 2015.<\/p>\n<p>Despite the state of DirectShow, these filters still play a role in DirectShow applications. We\u2019ve even made a few updates ourselves \u2014 a little bit of everything: a unit test project, some modern C++ and #COM code based on Microsoft WIL https:\/\/lnkd.in\/de5nxif, a COM type library with an integration interface, and various features. One particularly valuable addition is the ability to recover broken recordings.<\/p>\n<p>You see, sometimes applications crash \u2014 whether due to external factors or just plain bad luck. And sometimes the cost of \u201cre-doing things right\u201d is too high. Oh, and the cost of data loss is high too! In such cases, we can salvage the broken recording from the crashed application and recover its content. It\u2019s like a digital rescue mission. And in some instances, it\u2019s even automated \u2014 like in our partner\u2019s medical software https:\/\/lnkd.in\/dCrJJRjy, where multi-hour recordings are the norm these days.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[629],"tags":[485,95,78,631,630,470,486],"class_list":["post-2300","post","type-post","status-publish","format-standard","hentry","category-linkedin","tag-audio","tag-com","tag-directshow","tag-gdcl-co-uk","tag-github","tag-mp4","tag-video"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/2300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=2300"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/2300\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=2300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=2300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=2300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}