Para testar, quero converter um arquivo MP3 e WAV que tenho no Opus. Quais são as etapas para fazer isso?
Para testar, quero converter um arquivo MP3 e WAV que tenho no Opus. Quais são as etapas para fazer isso?
Respostas:
Por padrão, o conversor de áudio fornecido com as ferramentas do opus pode converter áudio nos formatos raw, wave ou AIFF. A sintaxe mínima usa as configurações padrão:
opusenc input.wav output.opus
Podemos adicionar uma taxa de bits melhor como os 96 kbps padrão com a opção --bitrate N.nnn
(para todas as opções, consulte a página de manual para opusenc).
Para converter mp3 "on the fly". ou seja, sem criar um arquivo temporário, podemos canalizar a saída do avconv para o opusenc como este:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
O Ubuntu 14.04 e o Debian 8 são fornecidos com a versão 9 do libav-tools
em seus repositórios e possuem suporte interno para o Opus através do pacote libopus0
.
Com a versão 9 libav-tools
e libopus0
instalada, você pode simplesmente, por exemplo, fazer:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-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
em https://libav.org/avconv.html#Advanced-options-codec:a opus
seleciona o codificador opus para os fluxos de áudio ( a
). Leia mais sobre -codec
sobre https://libav.org/avconv.html#Main-options .-b:a 100k
define a taxa de bits do áudio para 100 kilobit / s. Leia mais sobre -b
em https://libav.org/avconv.html#Codec-AVOptions-vbr on
ativa a taxa de bits variável. Esta é uma opção específica para libopus. Aqui estão todas as opções para 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.
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
-map 0:a
faz? (E talvez detalhar a toda a linha?)
Opus em 12.04
No 12.04 (Precise), no entanto, existem problemas de dependência na instalação dos codecs e ferramentas do opus, por isso descobri que a melhor solução é a que ficou disponível recentemente: compile o codificador e o decodificador de áudio opus, conforme observado aqui , e crie ffmpeg
com o suporte do opus adicionando --enable-opus
às opções de configuração de ffmpeg
(conforme listado no guia de compilação ).
Eu sei que isso ffmpeg
foi preterido no Ubuntu em favor Libav
, mas compilar é uma boa maneira de obter um codificador / decodificador opus totalmente funcional integrado a ffmpeg
ele mesmo. Você pode usá-lo para converter arquivos (primeiro para wav) e depois 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 notar uma ou duas coisas:
Você deve primeiro instalar as dependências conforme listado (eu omito yasm
na 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: o build do git parece querer yasm-1.2
, e isso não está disponível; portanto, você deve compilar a fonte do site oficial , mas é simples. Apenas remova todas as versões instaladas yasm
e descompacte o arquivo baixado cd
na pasta, execute ./configure && make
e depois sudo checkinstall
. Se qualquer outra construção exigir a versão anterior, você poderá remover esta versão e instalar a versão do repositório.
É necessário remover qualquer existente libav
, ffmpeg
, x264
, libvpx
, ou fdk-aac
pacotes antes de você começar a compilar.
É crítico que você compilar e instalar x264
, fdk-aac
, libvpx
e opus
antes de construir ffmpeg
, como as bibliotecas serão utilizadas na compilação.
Não se esqueça de adicionar --enable-opus
às opções de configuração ao executar a ffmpeg
compilação.
A versão do opus compilada era 1.1alpha, portanto, talvez seja necessário recompilar a biblioteca opus e o ffmpeg no futuro novamente quando uma nova versão for lançada.
Você pode usar ffplay
para reproduzir todos os arquivos opus criados.
É assim que eu faço:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version) .flac" "18 - Soul Asylum - Runaway Train (Album Version) .opus"
EDITAR:
Para 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 há necessidade de especificar a --maxdelay 10
opção porque opusenc
faça 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 de complexidade computacional (0-10, padrão: 10). Zero fornece os códigos mais rápidos, mas com qualidade inferior, enquanto 10 fornece a qualidade mais alta, porém com codificação mais lenta) e um tempo de atraso máximo de 10ms ( Atraso máximo do contêiner em milissegundos (0-1000, padrão: 1000)); portanto, se você pular o tempo em uma música, o efeito de recorte terá uma duração de 10ms, tornando-o imperceptível (tente com 1000 e ouça a diferença de tempo com o seu rato). A taxa de bits é VBR por padrão. 320kbps funcionaram para mim, portanto, é opcional, brinque com este número:
--bitrate N.nnn
=> Taxa de bits desejada em kbit / s (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 formato de áudio sem perdas , 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ê está procurando uma interface gráfica ffmpeg / avconv, talvez o TraGtor seja o que você precisa.
Você também pode verificar as diferenças do espectograma entre os formatos Lossless e Lossy com altas taxas de bits com Spek ou Audacity .
Error parsing input file: Hardvapour remix-.mp3
estou usando o 16.04
opus-tools
e Audex
.Abra o Audex e adicione um novo perfil chamado Opus, adicione Padrão de comando;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
e sufixo opus