создать статический sox с поддержкой lame и flac для AWS lambda

Я пытаюсь использовать sox в лямбда-функции AWS для преобразования файла FLAC в MP3, но не могу создать версию sox с поддержкой FLAC.

Я нашел это отличное решение, которое я использовал, но оно не поддерживает FLAC.

Я искал в сети альтернативы, но ничего не работает. Я также читал, что на каком-то этапе пропала поддержка FLAC, но это должно было быть исправлено. Я все еще ищу ответы, но любая помощь приветствуется.


person tanuki_mugatu    schedule 10.03.2017    source источник


Ответы (1)


Вам нужно добавить библиотеки libvorbis и flac в свою статическую сборку и пометить сборку sox, чтобы включить их. Я внес изменения в сценарий из ваших примеров вопросов, чтобы показать вам, как это делается.

    sudo yum update
    sudo yum install gcc44 gcc-c++ libgcc44 cmake –y

    # now grab sox and its dependencies
    mkdir -p deps
    mkdir -p deps/unpacked
    mkdir -p deps/built
    mkdir -p deps/built/libmad
    mkdir -p deps/built/sox
    mkdir -p deps/built/lame
    mkdir -p deps/built/libvorbis
    mkdir -p deps/built/flac
    wget -O deps/sox-14.4.2.tar.bz2 "http://downloads.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsox%2Ffiles%2Fsox%2F14.4.2%2F&ts=1416316415&use_mirror=heanet"
    wget -O deps/libmad-0.15.1b.tar.gz "http://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmad%2Ffiles%2Flibmad%2F0.15.1b%2F&ts=1416316482&use_mirror=heanet"
    wget -O deps/lame-3.99.5.tar.gz "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1416316457&use_mirror=kent"
    wget -O deps/libvorbis-1.3.5.tar.xz "http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz"
    wget -O deps/flac-1.3.2.tar.xz "https://superb-dca2.dl.sourceforge.net/project/flac/flac-src/flac-1.3.2.tar.xz"

    # unpack the dependencie
    pushd deps/unpacked
    tar xvfp ../sox-14.4.2.tar.bz2
    tar xvfp ../libmad-0.15.1b.tar.gz
    tar xvfp ../lame-3.99.5.tar.gz
    tar xvfp ../libvorbis-1.3.5.tar.xz
    tar xvfp ../flac-1.3.2.tar.xz
    popd

    # build libmad, statically
    pushd deps/unpacked/libmad-0.15.1b
    ./configure --disable-shared --enable-static --prefix=$(realpath ../../built/libmad)
    # Patch makefile to remove -fforce-mem
    sed s/-fforce-mem//g < Makefile > Makefile.patched
    cp Makefile.patched Makefile
    make
    make install
    popd

    # build lame, statically
    pushd deps/unpacked/lame-3.99.5
    ./configure --disable-shared --enable-static --prefix=$(realpath ../../built/lame)
    make
    make install
    popd

    # build libvorbis, statically
    pushd deps/unpacked/libvorbis-1.3.5
    ./configure --disable-shared --enable-static --prefix=$(realpath ../../built/libvorbis)
    make
    make install
    popd

    # build flac, statically
    pushd deps/unpacked/flac-1.3.2
    ./configure --disable-shared --enable-static --prefix=$(realpath ../../built/flac)
    make
    make install
    popd

    # build sox, statically
    pushd deps/unpacked/sox-14.4.2
    ./configure --disable-shared --enable-static --prefix=$(realpath ../../built/sox) \
        LDFLAGS="-L$(realpath ../../built/libmad/lib) -L$(realpath ../../built/lame/lib) -L$(realpath ../../built/libvorbis/lib) -L$(realpath ../../built/flac/lib)" \
        CPPFLAGS="-I$(realpath ../../built/libmad/include) -I$(realpath ../../built/lame/include) -I$(realpath ../../built/libvorbis/include) -I$(realpath ../../built/flac/include)" \
        --with-mad --with-lame --with-libvorbis --with-flac --without-oggvorbis --without-oss --without-sndfile --without-gomp
    make -s
    make install
    popd

    cp deps/built/sox/bin/sox .
    rm -rf deps/built
    rm -rf deps/unpacked
person kberryman    schedule 14.03.2017
comment
Это самый потрясающий ответ, который я нашел для своей работы. Спасибо. - person Abilash Amarasekaran; 22.08.2018