Как получить звуковую часть MP4 (видеофайл)?

Я разрабатываю приложение для Windows Phone 7 и записываю видео. Я хотел бы получить звуковую часть видеофайла (MP4) и немного улучшить звук. Я считаю, что звук сохраняется в виде кадров AAC в MP4. (Правильно?) Как я могу извлечь звук из видеофайла MP4?

Поскольку это видеофайл, он может быть огромным. Так что загружать в облако и обрабатывать там — не лучший вариант. Поскольку это приложение WP7, я не могу использовать unmaged dll :( Есть ли способ сделать это на чистом С#? Любые инструменты/образцы с открытым исходным кодом?

Спасибо!


person r32breeze    schedule 17.05.2012    source источник


Ответы (1)


MP4 — это контейнерный формат, и на самом деле звуковая часть не всегда представляет собой AAC. Это может быть MP3 или любое другое количество различных аудиоформатов. Возможно, вы думаете о M4A, для которого, как мне кажется, требуется либо AAC, либо ALAC.

Что касается извлечения аудио, должно быть возможно извлечь аудио из MP4, используя только управляемый код. Вам придется прочитать о формате MP4 (здесь, например - этот вопрос также стоит прочитать), а затем искать в файле местоположение аудио, а затем либо копировать его в собственный буфер, либо выполнять свои манипуляции по частям. Даже в этом случае вы должны будете уметь распознавать аудиоформаты, которые ваше приложение не поддерживает.

Возможно, уже существует библиотека .net, которая может все это делать, но я не знаю ни одной. Это, вероятно, не очень популярно, потому что управляемый код определенно не лучший подход к этому, но, учитывая, что это Windows Phone, это, как вы заметили, ваш единственный подход.

Удачи!

person Fur Dworetzky    schedule 17.05.2012