tutorial quality high ffplay examples compress ffmpeg converter

quality - Convierta.flac a.mp3 con ffmpeg, manteniendo todos los metadatos



transcode video ffmpeg (8)

El siguiente comando mantiene alta calidad en .mp3 (320 kbps), y los metadatos del archivo .flac se convierten al formato ID3v2, que se puede incluir en los archivos .mp3:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3

¿Cómo puedo convertir .flac a .mp3 con ffmpeg, manteniendo todos los metadatos (es decir, convertir el comentario de Vorbis en archivos .flac a metadatos ID3v2 de .mp3)?


Estaba probando el siguiente comando para convertir el archivo outfile.mp3 a outfile.mp3 :

ffmpeg -i infile.flac -q:a 0 outfile.mp3

A partir de Ubuntu 16.04, el comando anterior parece copiar (la mayoría de? Todos?) Los metadatos.

-q:a 0 le dice a ffmpeg que use el VBR de la más alta calidad.

Sin embargo, ffmpeg estaba transcodificando la carátula de mi álbum de jpeg a png , lo que aumentó el tamaño de la carátula.

Stream mapping: Stream #0:1 -> #0:0 (mjpeg (native) -> png (native)) Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))

(Supongo que la conversión anterior tiene sentido dado cómo funciona ffmpeg ).

Después de investigar un poco, encontré la opción de -c:v copy , que especifica que la transmisión de video debe copiarse, en lugar de transcodificarse. El comando completo es:

ffmpeg -i infile.flac -c:v copy -q:a 0 outfile.mp3

El comando anterior da como resultado:

Stream mapping: Stream #0:1 -> #0:0 (copy) Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))


Este script flac2mp3.sh usa ffmpeg para convertir un árbol de carpetas de archivos FLAC en otro árbol de carpetas de archivos MP3. La portada está incluida, cuando está presente. Puede establecer una variable CORES para crear trabajos en segundo plano para convertir varios archivos a la vez.


One-liner para convertir todos los archivos .flac a .mp3 en un solo directorio, manteniendo la mayoría de los metadatos:

for file in *.flac; do ffmpeg -i $file -q:a 0 ${file:r}.mp3; done

(Nota: ${file:r} elimina la extensión de la ruta de archivo dada)


Para convertir recursivamente en mp3 todos los archivos flac en carpetas anidadas, utilicé este comando:

find ''~/Music/'' -iname ''*.flac'' -exec bash -c ''D=$(dirname "{}"); B=$(basename "{}"); mkdir "$D/mp3/"; ffmpeg -i "{}" -ab 320k -map_metadata 0 -id3v2_version 3 -acodec libmp3lame "$D/mp3/${B%.*}.mp3"'' /;

Creará una carpeta llamada "mp3" dentro de la que tiene archivos flac y, dentro de la carpeta mp3, guardará los archivos mp3 relativos con una tasa de bits de 320 kbps, sin mantener la antigua extensión de archivo en el nombre.


Respuesta perfecta arriba. Lo uso junto con find para agregar todos los archivos FLAC en un subárbol a iTunes con este comando

find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 /;

Para agregar automáticamente los archivos resultantes a iTunes, obtenga el directorio de importación de iTunes con

find ~/Music/ -name "Automatically Add*"

resultado por ejemplo

/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized

Luego corre eg

find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" /;

Para agregar automáticamente todas las pistas convertidas a iTunes.


Sé que esto no fue solicitado, pero teniendo en cuenta que una de las razones por las que se hace esto (al menos eso es lo que quería hacer) es para que la música se pueda importar a Apple iTunes, que no es compatible con FLAC. En tal caso, tiene más sentido convertir FLAC al formato sin pérdidas de Apple, m4a. Utilicé este comando para convertir todos los archivos en la carpeta actual, conservando tamaños de archivo similares.

find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a /;


Si desea ahorrar un poco de espacio, pruebe la recomendación de hydrogenaud.io :

Muy alta calidad: HiFi, hogar o escucha silenciosa, con el mejor tamaño de archivo -V0 (~245 kbps) , -V1 (~225 kbps) , -V2 (~190 kbps) o -V3 (~175 kbps) . Estas configuraciones de VBR normalmente producirán resultados transparentes. Pueden existir diferencias audibles entre estos presets, pero son raros.

Fuente: http://wiki.hydrogenaud.io/index.php?title=LAME

Si desea usar esta opción en ffmpeg, debe usar el alias -q:a 0 .

Controle la calidad con -qscale:a (o el alias -q:a ). Los valores son específicos del codificador, por lo que para libmp3lame el rango es 0-9 donde un valor más bajo es una calidad más alta. 0-3 normalmente producirá resultados transparentes, 4 (predeterminado) debe estar cerca de la transparencia perceptiva y 6 produce una calidad "aceptable". La opción -qscale:a se asigna a la opción -V en la herramienta de interfaz de línea de comandos lame independiente.

Fuente: https://trac.ffmpeg.org/wiki/Encode/MP3

Si también desea metaetiquetas ID3v1, debe agregar el parámetro -write_id3v1 1 .

Entonces mi comando final es:

ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3