Instalação do sistema Ubuntu-FFmpeg e configuração do ambiente

Para download de imagens, resolução de nome de domínio e sincronização de tempo, clique em  Alibaba Cloud Open Source Mirror Station

1. Introdução

FCN-4 é uma rede neural totalmente convolucional aplicada à anotação automática de áudio. Ao usar esta rede para concluir tarefas de anotação de áudio, primeiro você precisa usar o kit de ferramentas de processamento de áudio Librosa do python para extrair as características de tempo-frequência do áudio. Para arquivos de áudio no formato mp3, o trabalho de leitura de arquivos de áudio do Librosa depende do back-end de processamento de áudio ffmpeg, portanto é necessário O ambiente que utiliza esta rede para tarefas automáticas de anotação de áudio mp3 possui bibliotecas dependentes de Librosa e ffmpeg.

  • Librosa é um kit de ferramentas python para análise e processamento de áudio e música. Possui funções comuns, como processamento de frequência de tempo, extração de recursos e desenho de gráficos de som.

  • FFmpeg é uma coleção de bibliotecas e ferramentas para processamento de conteúdo multimídia (como áudio, vídeo, legendas e metadados relacionados).Ele contém bibliotecas avançadas de codecs de áudio e vídeo, fornecendo uma plataforma cruzada completa para gravação, conversão e streaming de áudio e vídeo. solução. Você pode usar sua API para processar áudio e vídeo ou pode usar as ferramentas que ela fornece, como ffmpeg, ffplay e ffprobe, para editar arquivos de áudio e vídeo.

A seguir descrevemos problemas comuns durante o processo de instalação e configuração da biblioteca Librosa e da ferramenta FFmpeg.

2 perguntas frequentes sobre a instalação de bibliotecas dependentes do Librosa

2.1 Instalação da biblioteca Librosa

  • Ao executar um script python contendo a instrução "import librosa", um erro é relatado conforme mostrado na figura abaixo, indicando que bibliotecas dependentes de Librosa precisam ser instaladas.

  • Execute o seguinte comando na linha de comando para instalar a biblioteca librosa
    pip install librosa

Um prompt em uma caixa vermelha aparece no resultado da instalação, indicando que as bibliotecas dependentes da librosa foram instaladas com sucesso.

2.2 Possíveis erros ao chamar o pacote librosa

Após a instalação da biblioteca de dependência librosa, ainda pode haver problemas com a falta de outras dependências relacionadas no ambiente. Possíveis problemas e suas soluções são apresentados a seguir.

2.2.1 Sem módulo bz2

  • Informar um erro

O erro "Nenhum módulo chamado '_bz2'" é relatado. Do seguinte modo

  • Causas Possíveis

A razão para este erro é que a biblioteca _bz2 não está instalada na versão Python usada para executar o programa.

Geralmente é porque o programa em execução usa python3.7, mas a biblioteca bz2 está instalada no caminho do python3.6, portanto não pode ser encontrada.

  • solução

Copie a biblioteca bz2 em python3.6 para python3.7.

Passos:

1. Encontre o arquivo da biblioteca _bz2 no caminho python3.6, ou seja, "_bz2.cpython-36m-x86_64-linux-gnu.so"

ll /usr/lib/python3.6/lib-dynload/

2. Mude para o caminho correspondente a python3.7 e copie o arquivo para o diretório

cd /usr/local/python3.7.5/lib/python3.7/lib-dynload/
cp /usr/lib/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./

3. Modifique o nome do arquivo e altere “-36m” para “-37m”

mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so
chmod +x _bz2.cpython-37m-x86_64-linux-gnu.so    # (可选)增加该文件的可执行权限 

Agora o diretório usado para executar o programa é python3.7. Já existe um arquivo de biblioteca bz nele.

ilustrar:

Existem muitas soluções para este problema, desde que a biblioteca _bz2 exista no caminho relacionado à versão python utilizada. Por exemplo, você pode baixar o arquivo "_bz2.cpython-37m-x86_64-linux-gnu.so" da Internet ou copiá-lo de qualquer outro ambiente onde o arquivo exista para o caminho relevante do ambiente de destino.

2.2.2 Sem módulo _lzma

  • Informar um erro

O erro "Nenhum módulo chamado '_lzma'" é relatado. Do seguinte modo

  • solução

Consulte a etapa anterior "2.2.1 Sem módulo bz2" para resolver o problema e certifique-se de que a biblioteca lzma exista no caminho relacionado à versão python usada.

2.2.3 A biblioteca sndfile não pode ser encontrada

  • O erro "OSError: biblioteca sndfile não encontrada" é relatado. Do seguinte modo.

  • solução

Execute o seguinte comando na linha de comando para instalar a biblioteca sndfile

apt-get install libsndfile1

3 perguntas frequentes sobre a instalação de ferramentas FFmpeg

Após a biblioteca dependente do Librosa ser instalada e configurada, "audioread.exceptions.NoBackendError" pode ser acionado durante a leitura de arquivos de áudio, conforme mostrado abaixo.

  • Informar um erro

audioread.exceptions.NoBackendError

  • razão

Este problema é causado principalmente pelo fato de que a biblioteca de processamento de áudio "librosa" não consegue ler diretamente os dados de áudio no formato "mp3" e precisa chamar o backend "ffmpeg" para ler o arquivo de áudio.

As razões específicas podem ser divididas nos dois pontos a seguir

  • "ffmpeg" não está instalado no ambiente.
  • "ffmpeg" está instalado, mas a configuração do ambiente existente não pode direcionar o local de chamada da biblioteca librosa para encontrar o backend "ffmpeg".

A seguir será dado o processo completo de instalação e configuração da ferramenta ffmpeg.As etapas a seguir podem ser concluídas seletivamente de acordo com a configuração existente no ambiente.

3.1 Instale o ffmpeg

3.1.1 Instale o wget (opcional)

No ambiente Ubuntu, você precisa usar a ferramenta wget para baixar o pacote de instalação do código-fonte do ffmpeg, então primeiro você precisa baixar e instalar a ferramenta wget (Nota: você também pode baixar o pacote de instalação do código-fonte do ffmpeg em outros ambientes e carregue-o no ambiente de destino).

  • Execute o seguinte comando na linha de comando para instalar o wget
apt-get install -y wget

3.1.2 Instale o ffmpeg

1. Baixe e descompacte o pacote de instalação

Execute o seguinte comando na linha de comando para baixar o pacote de instalação do código-fonte do ffmpeg

cd /usr/local/
wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz

Pode haver situações em que a verificação de autenticação falhe e o download falhe, neste caso siga os prompts e adicione a opção de cancelar a verificação de autenticação na linha de comando, ou seja, execute o seguinte comando

wget --no-check-certificate https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz

Após a conclusão do download, o pacote compactado "ffmpeg-4.1.tar.xz" deverá existir no diretório atual (/usr/local/)

Execute o seguinte comando para descompactar o pacote de instalação

tar -xvf ffmpeg-4.1.tar.xz 

Após a conclusão da descompactação, a pasta "ffmpeg-4.1" existirá no diretório atual (/usr/local/)

2. Execute o arquivo de configuração de instalação.

Crie a pasta “ffmpeg” no caminho atual (/usr/local/) como o caminho de instalação da ferramenta ffmpeg.

mkdir ffmpeg

Insira o pacote de código-fonte, programa “config” e conclua a instalação e configuração do ffmpeg.

cd ffmpeg-4.1
./configure --enable-shared --prefix=/usr/local/ffmpeg  # --prefix选项指出ffmpeg的安装路径

Os resultados a seguir indicam que o programa de configuração foi executado com sucesso.

Nota: Ao executar o programa de configuração, o erro "nasm/yasm not encontrado ou muito antigo. Use..." pode ser relatado. Neste caso, você precisa instalar o yams primeiro e, em seguida, executar novamente o programa de configuração.

Comando para instalar o yasm:

apt-get install yasm 

3. Execute as instruções de compilação e instalação

Execute os seguintes comandos para concluir a compilação e instalação do programa ffmpeg

Após a conclusão da instalação, se o seguinte conteúdo existir no caminho de instalação (–prefix=/usr/local/ffmpeg) indicado na configuração, significa que o ffmpeg foi instalado com sucesso.

3.2 Configurar variáveis ​​de ambiente

1. Modifique variáveis ​​de ambiente

Adicione o caminho absoluto do ffmpeg à variável de ambiente PATH para que o sistema possa encontrar o caminho de instalação do ffmpeg.

vim ~/.bashrc  # 打开系统环境变量配置文件

Adicione o seguinte conteúdo ao arquivo.

export PATH="/usr/local/ffmpeg/bin:${PATH}"
export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:{LD_LIBRARY_PATH}"

2. Não é possível abrir o arquivo da biblioteca compartilhada

Ao usar o comando "ffmpeg -h" ou "/usr/local/ffmpeg/binffmpeg -h" na linha de comando para detectar a instalação do ffmpeg, o seguinte conteúdo aparece.

“Erro ao carregar bibliotecas compartilhadas: libavdevice.so.58: não é possível abrir arquivo ou diretório de objeto compartilhado”

Isso é causado porque o sistema não consegue encontrar a biblioteca compartilhada do ffmpeg.

Crie o arquivo "ffmpeg.conf" no caminho "/etc/ld.so.conf.d/" e escreva "/usr/local/ffmpeg/lib" no arquivo

vim /etc/ld.so.conf.d/ffmpeg.conf   # 编辑文件,添加内容“/usr/local/ffmpeg/lib”后保存退出
cat /etc/ld.so.conf.d/ffmpeg.conf   # 查看ffmpeg.conf中的内容
ldonfig        # 执行ldconfig命令,使/etc/ld.so.conf.d/目录下新加入的配置信息生效

3. Teste se a configuração foi bem-sucedida

Digite "what ffmpeg" ou "ffmpeg -h" na linha de comando e o seguinte conteúdo aparecerá, indicando que o ffmpeg foi totalmente instalado e configurado com sucesso.

3.3 Modifique as instruções de chamada de back-end no arquivo de biblioteca

Se após concluir a configuração acima o erro "audioread.exceptions.NoBackendError" ainda for relatado, considere as seguintes soluções.

  • Modifique o arquivo da biblioteca para indicar o caminho absoluto de instalação do ffmpeg.

Encontre a localização de "ffdec.py", abra e edite o arquivo e faça as seguintes modificações na linha 33.

Altere COMMAND = ('ffmpeg', 'avconv') para COMMAND = ('/usr/local/ffmpeg/bin/ffmpeg', 'avconv')

Acho que você gosta

Origin blog.csdn.net/Qx_cd/article/details/131134659
Recomendado
Clasificación