Обрезать MP3 Программно
Вопрос
Каков наилучший способ обрезать mp3-файл программно?Например, допустим, я хочу избавиться от первых 2 минут или последних 2 минут или от того и другого.Есть ли хороший способ сделать это из .NET?Или .NET, вызывающий инструмент командной строки?
Решение
Существует два подхода к обрезке MP3-файлов:
Сначала конвертируйте в WAV, обрежьте ненужные сэмплы, а затем конвертируйте обратно в MP3.Недостатком является то, что в процессе будет очень незначительная потеря качества.Преимущество заключается в том, что вы найдете множество инструментов командной строки для выполнения преобразований за вас, позволяя вам просто обрезать WAV-файл самостоятельно (НАудио позволил бы вам это сделать).
Во-вторых, проанализируйте сами кадры MP3 и выбросьте целые кадры.Это не дает вам такой большой детализации, но в процессе нет потери качества.Вы также должны быть в состоянии понимать формат MP3-кадров CBR и VBR, а также ID3-кадров.Существуют различные .СЕТЕВЫЕ библиотеки, которые могут читать это, но вам все равно нужно будет написать достаточное количество кода самостоятельно.
Другие советы
Моя ставка делается на инструмент CLI.Взять это например.
Я обернул библиотеку mp3-декодера и сделал ее доступной для .net-разработчиков.Вы можете найти его здесь:
http://sourceforge.net/projects/mpg123net/
Включены образцы для преобразования mp3-файла в PCM и чтения тегов ID3.
Может быть, вы сможете использовать его для поиска mp3-кадров и выписывать только те, которые вам интересно сохранить?