Comments 20
А зачем две директории с одинаковыми файлами для Linux и Windows? На сколько я могу видеть, там разница только в resources.
Ну, в целом, хороший пример пет-проекта, доведённого до определённого этапа, а не брошенный на версии 0.3alpha.
Вопросы:
- Почему ffmpeg, а не libav?
- Почему управление ffmpeg через командную строку, а не через, например, PyAV?
- Что если приложение громко упадёт, а ffmpeg не будет корректно завершён? Останется играть?
Проект для меня на стадии бета, если людям будет интересно, я буду проводить оптимизации кода, и улучшать проект, про PyAV не знал, буду думать, возможно следующая версия будет использовать PyAV, FFmpeg завершается только после того как он закончит декодирование в pcm32, далее этот файл проигрывает PortAudio, проблема с FFmpeg может быть в том случае, если начать проигрывать большой файл 8+ часов
Недавно тоже делал плеер, но я использовал libav. Там из коробки можно стримы читать.
А если эквалайзер не ставит целью научиться обрабатывать сигналы, то так же можно avfilter использовать.
Бесшовное воспроизведение умеет, без пауз между треками? А то автор AIMP'а уже почти 20 лет лепит отмазки, почему это невозможно сделать.
В MP3 из-за особенностей стандарта нельзя, там изначально это не предусмотрели. Насколько знаю, там или кроссфейд, или пауза, или щелчок
Почему тому же Винампу эти "особенности стандарта" не мешают? Распаковать конец текущего трека и начало следующего, совместить, воспроизвести.
Это не особенности стандарта, а ограничения конкретной библиотеки, выбранной программистом для написания плейера. Потому что программисты давно уже ничего не программируют, а собирают из библиотек. Как дети собирают башню из кубиков, и примерно с такой же устойчивостью.
Мы или о разном говорим, или я чего-то не знаю о Winamp. Там проблема не в распаковке, а в том, что MP3 меняет начало и конец трека и это можно только костылями обойти, которые по-разному срабатывают на файлах от разных кодеров. Если нон-стоп слушать типа какого-нибудь танцевального микса, разбитого на треки, то в MP3 пауза по определению должна быть, он в сам файл пишет нулевые семплы в начале и в конце.
Ну вот у меня нонстопный альбом (Carbon Based Lifeforms - World of Sleepers) в виде отдельных треков wav. Сжимаю треки RazorLame'ом. Закидываю получившиеся mp3 в плейлист Винампа. Альбом воспроизводится все так же нонстопно, без пауз, щелчков и кроссфейдов между треками.
А если mp3-кодер добавляет в файл какую-то отсебятину, то это плохой, негодный mp3-кодер. Разжатый файл должен совпадать с оригиналом по длительности и по фазе.
А если mp3-кодер добавляет в файл какую-то отсебятину, то это плохой, негодный mp3-кодер. Разжатый файл должен совпадать с оригиналом по длительности и по фазе.
Это как раз кодер, соответствующий стандарту MP3. В 2024 году, если не нравятся его недостатки, можно уже AAC или Vorbis использовать.
Это как раз кодер, соответствующий стандарту MP3.
Это древний стандарт времен Фраунгофера, который, подозреваю, никто кроме самого Фраунгофера и не соблюдал (и правильно делал).
В нормальном кодеке разжатый файл соответствует оригиналу. Ну представьте себе графический редактор, который при сжатии картинки в JPEG добавляет к ней черный бордюр. Куда бы вы послали такой "стандарт"?
Простите, вы точно разбираетесь в теме, или просто хотите порассуждать? У меня такое ощущение, что вы всех считаете глупыми. Создатель AIMP неправильный, создатели MP3 просто так нулевые семплы вставили, про "никто не соблюдал" вообще неправда, в LAME то же самое было, хотя он максимально не связан с институтом Фраунгофера и там хорошая команда разработки была со вниманием к мелочам. Возможно они потом это как-то обошли в последних версиях, но точно далеко не сразу.
Простите, вы точно разбираетесь в теме, или просто хотите порассуждать? У меня такое ощущение, что вы всех считаете глупыми.
Если хорошо разбираетесь в теме, то объясните, пожалуйста, почему одна и та же пара mp3-файлов в Винампе проигрывается бесшовно, а в Аимпе это, оказывается, "стандарт не позволяет".
Создатель AIMP неправильный
Ну а как еще это назвать, если одна программа умеет что-то делать, а автор другой программы говорит, что это ну совсем невозможно?
создатели MP3 просто так нулевые семплы вставили
Не просто так, у них наверняка была для этого причина. Даже подозреваю какая именно - синхронизация с видеофреймами в транспортных потоках MPEG1. Но в контексте кодирования аудиофайлов это действительно глупость.
Возможно они потом это как-то обошли в последних версиях, но точно далеко не сразу.
LAME 3.96.1, которым я пользуюсь, был написан в 2004 году, ровно 20 лет назад.
Если хорошо разбираетесь в теме, то объясните, пожалуйста, почему одна и та же пара mp3-файлов в Винампе проигрывается бесшовно, а в Аимпе это, оказывается, "стандарт не позволяет".
Я не знаю, как в Winamp это решено и какие у этого решения побочные эффекты. Точно также как не знаю, когда и что в LAME меняли (и напоминаю что это по-прежнему не единственный кодер).
По поводу LAME авторы вот тут объясняли, почему такая особенность.
Мой проект — это простой аудиоплеер, и я хочу рассказать, как я его создавал, с какими сложностями столкнулся и что из этого вышло.
Я вот сделал сложный медиа-плейер для ручного извлечения текста из аудио, видео и изображений с целью создания, например, собственных субтитров для обучающих видео.
http://scholium.webservis.ru/Pics/MediaText.png
Наверное, на эту тему тоже можно было бы написать статью, так как проектов подобного уровня на гитхабе и кодепроджект я не нашел. Тем более что эта штука оказалась весьма полезной в хозяйстве :) .
Было интересно читать, спасибо
В интерфейсе не хватает технической инфы по трекам: битрейт, частота, формат.
Как я создавал аудиоплеер на python с FFmpeg