Я хочу сделать программу, которая принимает файл MP3 и разбивает его на несколько небольших mp3-файлов на основе 1-2 секунд без звука (тишина). Что это самый простой способ сделать это в C#?Как разбить mp3-файл на более мелкие файлы?
ответ
Знание бинарного формата файла было бы хорошим местом для начала. Сделав это, вы узнаете, как выглядит тишина в файле. Возможно, вам придется точно определить, что такое тишина. Предполагая, что, как и большинство аудио, это началось с аналогового источника, почти наверняка есть некоторый шум, зарытый в «тишине». Какова будет ваша толерантность к окружающему/фоновому шуму?
Как только вы знаете, что ищете, просто просмотрите файл, ища «это».
Простой ...
Bass library. У баса есть все, что вам нужно. Он может получать доступ, записывать и редактировать медиапотоки, такие как mp3, позволяя вам выбирать громкость в разные моменты времени. Он имеет .net api, поэтому вы можете использовать его в C#. К сожалению, это стоит денег, если вы используете его для коммерческого применения, но они предоставляют бесплатную некоммерческую лицензию.
Sox - инструмент командной строки, который имеет возможность разделить mp3 на n секунд молчания. Вы всегда можете использовать системную команду для вызова sox из C#.
Другие связанные ссылки.
Ripping a CD to mp3 in C# - third party component or api out there?
Audio Libraries for MP3 editing
How do I merge/join mp3 files with c#
Этот код показывает способ сделать компакт-диск риппер в C#. Есть API от некоторых поставщиков, которые позволяют читать аудио CD треков, но также можно сделать с использованием API-интерфейсов, которые позволяют низкоуровневому доступу к CD-дискам, таким как ASPI, от кодов управления Adaptec или IOCTL. Последний метод используется в этом случае, , потому что нет необходимости устанавливать любое стороннее программное обеспечение, это , полностью покрытое функциями Win32 API .
программа для этого уже существует:
Нарезка MP3 поток будет трудно сделать с любой степенью точности. Сжатые данные MP3 существуют в виде последовательных фрагментов аудиоданных, состоящих из множества выборок. Самый простой способ выполнить это - это декодировать поток либо постепенно, либо полностью, выполнить свою манипуляцию, а затем перекодировать ее (что, как я понимаю, это то, как это делается в большинстве программ для jukebox)
- 1. Как разбить route.rb на более мелкие файлы
- 2. Разбить многоугольник на более мелкие
- 3. Perl - Как разбить файл на более мелкие файлы
- 4. Как разбить огромный файл на более мелкие файлы по алфавиту?
- 5. Как разбить Arraylist на более мелкие списки?
- 6. Как разбить код на более мелкие функции
- 7. Как разбить матрицу на более мелкие подматрицы?
- 8. Как разбить массив на более мелкие массивы?
- 9. Как разбить файл на более мелкие куски перед отправкой
- 10. Как разбить большой файл на определенную точку на более мелкие?
- 11. Как разбить текстовые файлы на более мелкие файлы с числовыми суффиксами, но нет 0 префикс
- 12. Как разбить строку на более мелкие строки с несколькими перекрытиями?
- 13. Как разбить большой сервис Factory() на более мелкие блоки кода?
- 14. Как я могу разбить список на более мелкие списки?
- 15. Как разбить объект javascript на более мелкие части
- 16. Как я могу разбить диапазон на более мелкие «куски»?
- 17. Как разбить DataSet на более мелкие куски для обработки?
- 18. Разбить регион на более мелкие регионы на основе обрезания
- 19. Разделить большие XML-файлы на более мелкие фрагменты в php
- 20. PHP - Разбить двоичную строку на более мелкие куски
- 21. Когда нужно разбить большой репозиторий Git на более мелкие?
- 22. Как разбить большой файл на более мелкие (более дружественный FTP) и объединить их позже?
- 23. лучший способ разбить эту таблицу на более мелкие
- 24. Самый быстрый способ разбить огромный текст на более мелкие куски
- 25. Azure Batch Job Как разбить большой файл на более мелкие файлы
- 26. Как разбить большой текстовый файл на более мелкие файлы с равным количеством строк?
- 27. Как разбить XML-файл на более мелкие файлы с помощью Powershell
- 28. Bash разделил большой файл на более мелкие файлы
- 29. Как разделить вывод mysqldump на более мелкие файлы?
- 30. Spliting длинного кортежа на более мелкие кортежи
Вы пробовали использовать ffmpeg? –
Нужно ли это делать программно? Я бы предположил, что для этого есть какое-то существующее программное обеспечение. –
Я видел случайный альбом, который был разорван таким образом, что все треки сделали один массивный файл; Я бы предположил, что у Rhein есть несколько файлов, сконфигурированных таким образом, и они хотят убирать их партиями, тем самым облегчая организацию библиотеки. Несмотря на то, что я сказал ниже, я, вероятно, предлагаю просто перепрограммировать альбомы, о которых идет речь. У вас есть законные права на них, верно? – Adrien