Para las pruebas, quiero convertir un archivo MP3 y WAV que tengo a Opus, ¿cuáles son los pasos para hacerlo?
Para las pruebas, quiero convertir un archivo MP3 y WAV que tengo a Opus, ¿cuáles son los pasos para hacerlo?
Respuestas:
Por defecto, el convertidor de audio incluido con las herramientas opus puede convertir audio en formato raw, wave o AIFF. La sintaxis mínima utiliza la configuración predeterminada:
opusenc input.wav output.opus
Es posible que queramos agregar una mejor tasa de bits como el valor predeterminado de 96 kbps con la opción --bitrate N.nnn
(para todas las opciones, consulte la página de manual de opusenc).
Para convertir mp3 "sobre la marcha". es decir, sin crear un archivo temporal, podemos canalizar la salida de avconv a opusenc de esta manera:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
Ubuntu 14.04 y Debian 8 vienen con la versión 9 de libav-tools
sus repositorios, y tiene soporte incorporado para Opus a través del paquete libopus0
.
Con la versión 9 libav-tools
e libopus0
instalada, simplemente puede, por ejemplo, hacer:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-i file.mp3
establece el archivo de entrada.-map 0:a
seleccionará todas las secuencias de audio ( a
) del archivo de entrada 0
. Obtenga más información -map
sobre https://libav.org/avconv.html#Advanced-options-codec:a opus
selecciona el codificador opus para las secuencias de audio ( a
). Leer más acerca -codec
de https://libav.org/avconv.html#Main-options .-b:a 100k
establece la velocidad de bits del audio a 100 kilobit / s. Leer más acerca -b
de https://libav.org/avconv.html#Codec-AVOptions-vbr on
activa la tasa de bits variable. Esta es una opción específica para libopus. Aquí están todas las opciones 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
establece el archivo de salida.
Tome la segunda secuencia de la primera entrada ( -map 0:1
), que es la secuencia de audio. Codifíquelo con libopus a 100 kbit / s con velocidad de bits variable en:
$ 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%
Con el paquete 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
hace? (¿Y tal vez detallar toda la línea?)
Opus el 12.04
Sin embargo, en 12.04 (Precise), existen problemas de dependencia con la instalación de los códecs y herramientas opus, por lo que he descubierto que la mejor solución es la que ha estado disponible recientemente: compile el codificador y decodificador de audio opus como se indica aquí , y compile ffmpeg
con soporte de opus agregando --enable-opus
a las opciones de configuración de ffmpeg
(como se enumera en la guía de compilación ).
Sé que ffmpeg
está desaprobado en Ubuntu a favor Libav
, pero compilar es una buena manera de obtener un codificador / decodificador opus completamente funcional integrado en ffmpeg
sí mismo. Luego puede usarlo para convertir archivos (primero a wav) y luego a .opus
. La documentación instalada con libopus y ffmpeg revelará todas las opciones que se pueden usar para convertir archivos.
Al convertir archivos con ffmpeg
después de la compilación, debe especificar -acodec libopus
o ffmpeg
no utilizará el códec opus:
ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
Luego puede probar el archivo creado con
ffplay man.opus
Consejos de compilación
No es necesario reproducir la guía aquí en su totalidad, pero vale la pena señalar una o dos cosas:
Primero debe instalar las dependencias como se enumeran (omito yasm
de la lista: vea mi segundo punto):
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
Hay un problema que debe señalarse: la compilación de git parece querer yasm-1.2
y no está disponible, por lo que debe compilar la fuente desde el sitio oficial , pero es simple. Simplemente elimine las versiones instaladas de yasm
, luego desempaquete el archivo descargado, cd
a la carpeta, ejecute ./configure && make
y luego sudo checkinstall
. Si alguna otra compilación requiere la versión anterior, puede eliminar esta versión e instalar la versión del repositorio.
Es necesario eliminar cualquier existente libav
, ffmpeg
, x264
, libvpx
, o fdk-aac
paquetes antes de que comiencen a evaluar.
Es fundamental que se compila e instala x264
, fdk-aac
, libvpx
y opus
antes de construir ffmpeg
, ya que esas bibliotecas serán utilizados en la construcción.
No olvide agregar --enable-opus
a las opciones de configuración cuando ejecute la ffmpeg
compilación.
La versión de opus compilada era 1.1alpha, por lo que es posible que deba volver a compilar la biblioteca de opus y ffmpeg en el futuro nuevamente cuando se lance una nueva versión.
Puede usar ffplay
para reproducir cualquier archivo opus que cree.
Así es como lo hago:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Runaway Train (Versión del álbum) .flac" "18 - Soul Asylum - Runaway Train (Versión del álbum) .opus"
EDITAR:
Para audiófilos:
$ opusenc --bitrate 510 --max-delay 10 "18 - Soul Asylum - Runaway Train (Versión del álbum) .flac" "18 - Soul Asylum - Runaway Train (Versión del álbum) .opus"
No es necesario especificar la --maxdelay 10
opción porque lo opusenc
hace de forma predeterminada.
Salida de consola para esta conversión de archivo ( --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)
¡Es súper rápido! Menos de 8 segundos con una complejidad de 10 (complejidad computacional de codificación (0-10, valor predeterminado: 10). Cero proporciona las codificaciones más rápidas pero de menor calidad, mientras que 10 proporciona la codificación más alta pero más lenta) y un tiempo de retraso máximo de 10 ms ( Retraso máximo del contenedor en milisegundos (0-1000, predeterminado: 1000)), por lo que si omite el tiempo en una canción, el efecto de recorte tendrá una duración de 10 ms, por lo que es imperceptible (intente con 1000 y escuche la diferencia de tiempo de omisión con su ratón). La tasa de bits es VBR por defecto. 320kbps funcionó para mí, así que es opcional, juegue con este número:
--bitrate N.nnn
=> Bitrate objetivo en kbit / seg (6-256 por canal)
Por cierto, la codificación de MP3 a OPUS no es una buena idea, no va a sonar mejor, sus algoritmos de compresión son demasiado diferentes. Pero desde FLAC o WAV o cualquier otro formato de audio sin pérdida , esa es otra historia.
Nota: Para codificar otro archivo, simplemente presione la flecha hacia arriba en el mismo terminal para llamar al último comando y cambiar el nombre de los archivos de entrada y salida.
Si está buscando una interfaz gráfica de usuario de ffmpeg / avconv, quizás TraGtor sea lo que necesita.
También puede verificar las diferencias de espectograma entre los formatos Lossless y Lossy a altas tasas de bits con Spek o Audacity .
Error parsing input file: Hardvapour remix-.mp3
que estoy usando 16.04
opus-tools
y Audex
.Abra Audex y agregue un nuevo perfil llamado Opus, agregue el patrón de Comando;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
y sufijo opus