Como converter um arquivo de som para Opus

20

Para testar, eu quero converter um arquivo MP3 e WAV que eu tenho para o Opus, quais são as etapas para fazer isso?

    
por Luis Alvarado 02.11.2012 / 18:20

5 respostas

21

Por padrão, o conversor de áudio é fornecido com as opus-tools podeconverteráudioemformatoraw,waveouAIFF.Asintaxemínimausaconfiguraçõespadrão:

opusencinput.wavoutput.opus

Podemosquereradicionarumamelhortaxadebitscomopadrão96kbpscomaopção--bitrateN.nnn(paratodasasopções,consulteamanpageparaopusenc).

Paraconvertermp3"on the fly". Ou seja, sem criar um arquivo temporário, podemos canalizar a saída de avconv para opusenc assim:

avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
    
por Takkat 02.11.2012 / 19:40
10

O Ubuntu 14.04 e o Debian 8 vêm com a versão 9 do libav-tools em seus repositórios, e ele tem suporte embutido para o Opus através do pacote libopus0 .

Exemplo 1: Reencode um arquivo de áudio como opus

Com a versão 9 de libav-tools e libopus0 instalada, você pode simplesmente, por exemplo:

avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus

Quais são as opções

  • -i file.mp3 define o arquivo de entrada.
  • -map 0:a selecionará todos os fluxos de áudio ( a ) do arquivo de entrada 0 . Leia mais sobre -map no link link
  • -codec:a opus seleciona o codificador de opus para os fluxos de áudio ( a ). Leia mais sobre -codec no link .
  • -b:a 100k define a taxa de bits do áudio para 100 kilobits / s. Leia mais sobre -b no link
  • -vbr on ativa a taxa de bits variável. Esta é uma opção específica para o libopus. Aqui estão todas as opções para o libopus:

    $ avconv -h full | grep opus -A 11
    avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
      built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
    libopus AVOptions:
    -application       <int>   E..A. Intended application type
       voip                    E..A. Favor improved speech intelligibility
       audio                   E..A. Favor faithfulness to the input
       lowdelay                E..A. Restrict to only the lowest delay modes
    -frame_duration    <float> E..A. Duration of a frame in milliseconds
    -packet_loss       <int>   E..A. Expected packet loss percentage
    -vbr               <int>   E..A. Variable bit rate mode
       off                     E..A. Use constant bit rate
       on                      E..A. Use variable bit rate
       constrained             E..A. Use constrained VBR
    
  • file.opus define o arquivo de saída.

Exemplo 2: Pegue o áudio de um arquivo de vídeo e codifique-o como opus

Pegue o segundo fluxo da primeira entrada ( -map 0:1 ), que é o fluxo de áudio. Codifique-o com libopus a 100 kbit / s com taxa de bits variável em:

$ avconv -stats -i linuxactionshowep309-432p.mp4 -map 0:1 -c libopus -b 100k linuxactionshowep309-432p-audio-only.opus
avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
  built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'linuxactionshowep309-432p.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.33.100
  Duration: 01:14:48.45, start: 0.042667, bitrate: 466 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 768x432 [PAR 1:1 DAR 16:9], 330 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
Output #0, ogg, to 'linuxactionshowep309-432p-audio-only.opus':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.20.3
    Stream #0.0(und): Audio: libopus, 48000 Hz, stereo, flt, 100 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (aac -> libopus)
Press ctrl-c to stop encoding
size=   54360kB time=4488.47 bitrate=  99.2kbits/s    
video:0kB audio:53875kB global headers:0kB muxing overhead 0.900602%

Com o pacote mediainfo instalado:

$ mediainfo linuxactionshowep309-432p-audio-only.opus
General
Complete name                            : linuxactionshowep309-432p-audio-only.opus
Format                                   : OGG
File size                                : 53.1 MiB
Duration                                 : 1h 14mn
Overall bit rate                         : 99.2 Kbps
Writing application                      : Lavf54.20.3
major_brand                              : isom
minor_version                            : 512
compatible_brands                        : isomiso2avc1mp41

Audio
ID                                       : 2104437746 (0x7D6F2BF2)
Format                                   : Opus
Duration                                 : 1h 14mn
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Writing library                          : Lavf54.20.3
    
por Daniel Jonsson 11.02.2014 / 22:10
4

É assim que eu faço:

  • Primeiro, abra um terminal no mesmo diretório onde estão seus arquivos de áudio.
  • Em seguida, digite este comando:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version).flac" "18 - Soul Asylum - Runaway Train (Album Version).opus"

EDITAR:

Para os audiófilos:

$ opusenc --bitrate 510 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version).flac" "18 - Soul Asylum - Runaway Train (Album Version).opus"

Não é necessário especificar a opção --maxdelay 10 porque opusenc faz isso por padrão.

Saída do console para esta conversão de arquivo ( --bitrate 320 ):

    Encoding using libopus 1.1.2 (audio)
    -----------------------------------------------------
       Input: 44.1kHz 2 channels
      Output: 2 channels (2 coupled)
          20ms packets, 320kbit/sec VBR
     Preskip: 356

    Encoding complete   
    -----------------------------------------------------
           Encoded: 4 minutes and 22.4 seconds
           Runtime: 8 seconds
                    (32.8x realtime)
             Wrote: 10955530 bytes, 13120 packets, 13124 pages
           Bitrate: 317.691kbit/s (without overhead)
     Instant rates: 1.2kbit/s to 510.4kbit/s
                    (3 to 1276 bytes per packet)
          Overhead: 4.89% (container+metadata)

É super rápido! Menos de 8 segundos com uma complexidade de 10 (codificação complexidade computacional (0-10, padrão: 10). Zero dá as codificações mais rápidas mas qualidade inferior, enquanto 10 dá a mais alta qualidade mas codificação mais lenta) e um atraso máximo de 10ms ( Máximo atraso do contêiner em milissegundos (0-1000, padrão: 1000)), portanto, se você pular o tempo em uma música, o efeito de corte terá uma duração de 10 ms, portanto, é imperceptível (experimente 1000 e ouça a diferença de tempo com o seu rato). A taxa de bits é VBR por padrão. 320kbps funcionou para mim, então é opcional, reproduza com este número:% --bitrate N.nnn = > Taxa de bits alvo em kbit / seg (6-256 por canal)

A propósito, codificar de MP3 para OPUS não é uma boa idéia, não vai soar melhor, seus algoritmos de compressão são muito diferentes. Mas de FLAC ou WAV ou qualquer outro Lossless Audio Format , isso é outra história.

Nota: Para codificar outro arquivo, basta pressionar a Seta para Cima no mesmo terminal para chamar o último comando e alterar o nome dos arquivos de entrada e saída.
Se você estiver procurando por uma GUI ffmpeg / avconv, talvez TraGtor seja o que você precisa.

Você também pode verificar as diferenças de espectograma entre os formatos Lossless e Lossy em altas taxas de bits com Spek ou .

    
por Jose Barakat 20.07.2016 / 20:10
3

Opus em 12.04

No 12.04 (Precise), no entanto, existem problemas de dependência na instalação dos codecs e ferramentas da opus, então eu descobri que de longe a melhor solução é a que se tornou disponível recentemente: compilar o codificador e decodificador de áudio da opus href="http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide"> como mencionado aqui , e construa ffmpeg com o suporte opus adicionando --enable-opus às opções de configuração de ffmpeg (conforme listado no guia de compilação ).

Eu sei que ffmpeg está obsoleto no Ubuntu em favor de Libav , mas a compilação é uma boa maneira de obter um codificador / decodificador de opus totalmente funcional integrado no ffmpeg em si. Você pode usá-lo para converter arquivos (primeiro para wav) e, em seguida, para .opus . A documentação instalada com libopus e ffmpeg revelará todas as opções que podem ser usadas para converter arquivos.

Ao converter arquivos com ffmpeg após a compilação, você deve especificar -acodec libopus ou ffmpeg não usará o codec opus:

ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus

Você pode testar o arquivo criado com

ffplay man.opus

Dicas de compilação

Não há necessidade de reproduzir o guia aqui na íntegra, mas vale a pena observar uma ou duas coisas:

  • Você deve primeiro instalar as dependências listadas (omitido yasm da lista: veja meu segundo ponto):

     sudo apt-get -y install autoconf build-essential checkinstall git libass-dev libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
    
  • Há um problema que deve ser destacado: a compilação do git parece querer yasm-1.2 , e isso não está disponível, então você tem que compilar a fonte de o site oficial , mas é simples. Basta remover todas as versões instaladas de yasm e, em seguida, descompactar o arquivo baixado, cd na pasta, executar ./configure && make e, em seguida, sudo checkinstall . Se qualquer outra versão exigir a versão anterior, você pode simplesmente remover essa versão e instalar a versão do repositório.

  • É necessário remover todos os pacotes libav , ffmpeg , x264 , libvpx ou fdk-aac existentes antes de começar a compilar.

  • É crítico que você compila e instala x264 , fdk-aac , libvpx e opus antes de criar ffmpeg , pois essas bibliotecas serão usadas em a construção.

  • Não se esqueça de adicionar --enable-opus às opções de configuração quando você executar a compilação ffmpeg .

  • A versão do opus compilada era 1.1alpha, então você pode precisar recompilar a biblioteca opus e ffmpeg no futuro novamente quando uma nova versão for lançada.

  • Você pode usar ffplay para reproduzir quaisquer arquivos opus criados por você.

por user76204 10.01.2013 / 03:15
1
  1. Encontre um CD (ou flac com CDEMU) com o mesmo conteúdo que mp3.
  2. Instalação opus-tools e Audex .
  3. Abra o Audex e adicione um novo perfil chamado Opus, adicione o padrão Command;

    opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o

e sufixo opus

  1. deixe rasgar!
por Joel Garcia 18.01.2016 / 04:38