Создать изображение формы волны для аудиофайла?

Создать изображение формы волны для аудиофайла?

Какая gst-launchцепь для раковины подходит для использования любого из них?аудиовизуализаторы?

Есть ли еще работающие инструменты?

Я виделhttp://rg42.org/wiki/sndfile-waveform

Но прежде чем пытаться нырнуть в компиляцию, может быть, есть способ сделать это с помощью gstreamer? Или кто-нибудь, кто может подтвердить, что это будет нормально компилироваться.

решение1

Вы не можете использовать аудиовизуализаторы Gstreamer, так как все они создают только кадр для рендерера типа scope (т. е. видеоприемника, такого как ximagesink).

Давайте возьмем /usr/share/sounds/ubuntu/stereo/bell.oggв качестве примера файл.

Если я открою этот файл в Audacity, я смогу увидеть предварительный просмотр формы волны:

введите описание изображения здесь

Но если я использую следующий конвейер:

gst-launch filesrc location=/usr/share/sounds/ubuntu/stereo/bell.ogg ! decodebin ! audioconvert ! wavescope ! jpegenc ! filesink location=waveform.jpg

Я получаю только усеченную форму волны, соответствующую первым образцам моего файла:

введите описание изображения здесь

sndfile-форма волныкак вы можете догадаться, это идеальный инструмент для этой задачи, но его нужно собрать из исходного кода (хотя он установит ~200 МБ зависимостей):

  1. Установить все зависимости

    sudo apt-get build-dep sndfile-tools 
    sudo apt-get install octave-signal libsamplerate0-dev git
    
  2. Клонироватьsndfile-инструментырепо

    git clone https://github.com/erikd/sndfile-tools.git
    
  3. Соберите двоичные файлы sndfile-tools:

    cd sndfile-tools/
    ./autogen.sh 
    ./configure 
    make
    
  4. Создайте форму волны с помощью sndfile-waveform(канал по умолчанию — 0, его можно изменить с помощью --channelопции)

    ./bin/sndfile-waveform /usr/share/sounds/ubuntu/stereo/desktop-login.ogg waveform.png
    

    Итоговый файл png:

введите описание изображения здесь

Тот же файл в Audacity:

введите описание изображения здесь

Связанный контент