/ogg_vorbis

Demo project. Decoder for ogg-vorbis audio files

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

OGG VORBIS

ВЕРСИЯ

5

АВТОР

Семен Вяцков

ОПИСАНИЕ

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

ТРЕБОВАНИЯ

  • Python 3.7.4+
  • Windows 10
  • Установленная аудио библиотека ffmpeg или libav. Добавить в PATH путь к exe-файлу билиотеки для Windows. На Linux:
# libav
apt-get install libav-tools libavcodec-extra

# ffmpeg
apt-get install ffmpeg libavcodec-extra

СОСТАВ

  • vorbis

    Вся логика обработки ogg vorbis файлов содержится здесь

    • __init__.py

    • decoders.py

      Все декодирование аудиопотока происходит здесь

    • helper_funcs.py

      Содержит вспомогательные функции различных назначений. (Эти функции выделены непосредственно в документации формата Vorbis I.)

    • ogg.py

      Декодирует vorbis-пакеты из ogg-контейнера

    • vorbis_main.py

      Главный кодовый файл модуля vorbis. Непосредственно обрабатывает vorbis-пакеты

  • resources

    Папка для различных данных, которые могут быть извлечены из ogg-vorbis файлов. К примеру, здесь лежат изображения, которые могут быть закодированы в одном из заголовков файла

  • libs

    Папка с библиотеками, использующимися приложением

    • libav-11.3

      Библиотека используется для отрисовки амплитуд аудио

  • ui

    Реализация графического и консольного интерфейсов

    • __init__.py

    • console_ui.py

      Реализация консольного интерфейса

    • graphics_ui.py

      Реализация графического интерфейса

  • tests

    • test_audiofiles

      Папка с тестовыми ogg-vorbis аудиофайлами

    • __init__.py

    • test_decoders.py

    • test_helper_funcs.py

    • test_ogg.py

    • test_vorbis_main.py

  • launcher_console.py

    Консольный клиент

  • launcher_graphics.py

    Графический клиент

  • requirements.txt

    Библиотеки python, необходимые для работы приложения

  • config.ini

    Конфигурационный файл

КОНСОЛЬНАЯ ВЕРСИЯ

Справка по запуску: launcher_console.py --help

Пример запуска: launcher_console.py -e -i .\tests\test_audiofiles\test_1.ogg

Справка по командам: --help [аргумент запуска]

ГРАФИЧЕСКАЯ ВЕРСИЯ

Справка по запуску: launcher_graphics.py --help

Пример запуска: launcher_graphics.py .\tests\test_audiofiles\test_1.ogg

ПОДРОБНОСТИ РЕАЛИЗАЦИИ

Вся логика содержится в следующих кодовых файлах. Покрытие тестами 80% или более.

Name                     Stmts   Miss  Cover
--------------------------------------------
vorbis\__init__.py           1      0   100%
vorbis\decoders.py         419     40    90%
vorbis\helper_funcs.py      28      0   100%
vorbis\ogg.py              110     16    85%
vorbis\vorbis_main.py      153     23    85%
--------------------------------------------
TOTAL                      711     79    89%